2

J'essaye de mettre à jour un detailView dans un splitViewController. Ce est ce que j'essaie:Comment mettre à jour un detailView dans un splitViewController?

//Get the application delegate 
AppDelegate *delegate = [[UIApplication sharedApplication] delegate]; 

//Get the masterViewController 
MasterViewController *master = [delegate.splitViewController.viewControllers objectAtIndex:0]; 

Cela semble bien fonctionner jusqu'à présent. Ensuite, j'essaie de mettre à jour une étiquette dans le detailViewController en faisant ceci:

master.detailViewController.myLabel.text = @"someText"; 

Mais cela ne fonctionne pas.

Alors, comment est la bonne façon d'accéder aux prises de detailView?

Merci pour votre aide.

Répondre

5

Définir le contrôleur DetailViewController; Dans votre exemple, detailViewController est:

DetailViewController * detailViewController = [delegate.splitViewController.viewcontrollers objectAtIndex: 1];

1

Vous ne devriez pas atteindre un autre contrôleur de vue et changer des choses. Au lieu de cela, envoyez simplement un message au DetailViewController, par exemple. [detailViewController setCurrentEntry:selectedEntry]. Mieux encore, utilisez les notifications ou KVO pour laisser le DetailViewController observer la sélection dans la liste principale. De cette façon, les deux contrôleurs de vue n'ont pas besoin de se référer les uns aux autres; C'est pratique lorsque vous voulez réorganiser la mise en page de votre application ou utiliser un contrôleur de vue isolément, disons, dans une vue modale. Plan pour le futur.