Как обновить detailView в splitViewController?
Я пытаюсь обновить 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 ответа
Определите DetailViewController; в вашем примере detailViewController:
DetailViewController * detailViewController = [делегат.splitViewController.viewcontrollers objectAtIndex: 1];
Вы не должны заходить внутрь другого контроллера вида и менять вещи. Вместо этого просто отправьте сообщение в DetailViewController, например [detailViewController setCurrentEntry:selectedEntry]
, Еще лучше использовать уведомления или KVO, чтобы позволить DetailViewController наблюдать за выбором в главном списке. Таким образом, двум контроллерам представления вообще не нужно ссылаться друг на друга; это удобно, когда вы хотите изменить компоновку вашего приложения или использовать один контроллер представления изолированно, скажем, в модальном представлении. План на будущее.