2

Я пытаюсь обновить 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?

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

ответ

5

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

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

1

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

 Смежные вопросы

  • Нет связанных вопросов^_^