Как обновить 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 наблюдать за выбором в главном списке. Таким образом, двум контроллерам представления вообще не нужно ссылаться друг на друга; это удобно, когда вы хотите изменить компоновку вашего приложения или использовать один контроллер представления изолированно, скажем, в модальном представлении. План на будущее.

Другие вопросы по тегам