2010-12-13 46 views
0

Je suis exemple de code Apple "MultipleDetailViews" mais ce que je veux faire est que:iPad: SplitViewController navigation

  1. au début, montre la RootViewController (vue tableau) afficher la valeur par défaut detailViewController (1er DetailView
  2. Lorsque l'utilisateur a sélectionné une cellule de tableau, insérez-la dans la pile, affichez SubCategoriesVC (vue tabulaire) dans le masque de splitView mais ne mettez pas à jour detailView.
  3. dans SubCategoriesVC, la sélection d'une cellule de tableau .. mettre à jour la detailViewController (2ème DetailView)

Ainsi, dans RootViewController.m, je pousse une autre navigation ...

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    SubCatVC *browseSubCatView = [[SubCatVC alloc] initWithNibName:@"SubCatVC" bundle:nil]; 
    [self.navigationController pushViewController:browseSubCatView animated:YES]; 
    [browseSubCatView release]; 
} 

Puis, SubCatVC.m

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
UIViewController <SubstitutableDetailViewController> *detailViewController = nil;  
SecondDetailViewController *newDetailViewController = [[SecondDetailViewController alloc] initWithNibName:@"SecondDetailViewController" bundle:nil]; 
    detailViewController = newDetailViewController; 

// Update the split view controller's view controllers array. 
NSArray *viewControllers = [[NSArray alloc] initWithObjects:self.navigationController, detailViewController, nil]; 
self.splitViewController.viewControllers = viewControllers; 
[viewControllers release]; 

// Dismiss the popover if it's present. 
if (self.popoverController != nil) { 
    [self.popoverController dismissPopoverAnimated:YES]; 
} 

// Configure the new view controller's popover button (after the view has been displayed and its toolbar/navigation bar has been created). 
if (self.rootPopoverButtonItem != nil) { 
    [detailViewController showRootPopoverButtonItem:self.rootPopoverButtonItem]; 
} 

    [detailViewController release]; 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"updateProduct" object:nil]; 
} 

mais il n'a pas mis à jour mon DetailView .. donc je ne sais pas ce qui ne va pas? Src ici: http://pastebin.com/iy6SqLqt

J'espère que quelqu'un peut me conseiller. Merci

Répondre

0

Je n'ai pas regardé votre source, mais un problème commun avec les vues fractionnées sont les délégués.

Lorsque vous poussez un nouveau rootController sur la pile de navigation, vous devez vous assurer qu'il a le pointeur vers le detailViewController auquel vous voulez qu'il parle. Vous pouvez vérifier SITS mon connecter le délégué avant d'essayer de le mettre à jour:

Dans votre SubCatVC (ou toute racine pour cette matière):

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 

//do stuff, init alloc vc's.... 

NSLog(@"DELEGATE: %@",self.delegate); 

//push/delegate etc.. 

} 

Si vous trouvez son nil, copiez le délégué des racines d'origine, ou quand vous mettez votre nouveau détail dedans, notifiez/placez la racine que vous voulez communiquer avec lui.

Si vous avez besoin de plus de détails, il suffit de demander.

+0

Luke, merci pour la réponse. J'ai changé mon SubCatVC en SubCatVC: UITableViewController ainsi le délégué fonctionne bien. Un autre problème que j'ai est que lors de la sélection sur la cellule de SubCatVC; contrôleur popover est nul .. comment je peux le passer? ou si vous avez un code/tutoriel que vous pouvez partager serait beaucoup mieux .. tnx –

+0

En général, dans l'objectif-c, vous pouvez passer des pointeurs n'importe où. Faites une propriété sur votre ViewC (qui n'a pas le PopC) et définissez-le après votre init. Dans ce cas, c'est très bien, vous devriez toujours y penser d'abord. Est-ce que le parent du pointeur de l'objet peut mourir avant que l'objet que vous avez passé l'utilise? –

+0

Luke, je sais comment passer le pointeur ... Je me demande juste pourquoi le popover et le popover barbuttonItem est nul. J'ai posté (ci-joint) le code ici (MultiDetailSplitFSG.zip): http://www.iphonedevsdk.com/forum/iphone-sdk-development/66673-splitview-help.html ... j'espère que vous pouvez vérifier pls & Dites-moi ce qui ne va pas .. Je suis vraiment coincé avec ce .. nn n avancé. –