Как обновить detailView в splitViewController? - PullRequest
2 голосов
/ 12 февраля 2010

Я пытаюсь обновить detailView в splitViewController. Вот что я пытаюсь:

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

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

Кажется, до сих пор это работает нормально. Затем я пытаюсь обновить метку в detailViewController, выполнив это:

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

Но это не работает.

Так как же правильно получить доступ к выходам в detailView?

Спасибо за помощь.

Ответы [ 2 ]

5 голосов
/ 09 марта 2010

Определить DetailViewController; в вашем примере detailViewController:

DetailViewController * detailViewController = [делегат.splitViewController.viewcontrollers objectAtIndex: 1];

1 голос
/ 10 августа 2010

Вы не должны заходить внутрь другого контроллера вида и менять вещи. Вместо этого просто отправьте сообщение в DetailViewController, например, [detailViewController setCurrentEntry:selectedEntry]. Еще лучше использовать уведомления или KVO, чтобы позволить DetailViewController наблюдать за выбором в главном списке. Таким образом, двум контроллерам представления вообще не нужно ссылаться друг на друга; это удобно, когда вы хотите изменить компоновку своего приложения или использовать один контроллер представления изолированно, скажем, в модальном представлении. План на будущее.

...