我正在尝试更新splitViewController中的detailView。 这是我尝试的:
//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中的出口?
感谢您的帮助。
答案 0 :(得分:5)
定义DetailViewController;在您的示例中,detailViewController是:
DetailViewController * detailViewController = [delegate.splitViewController.viewcontrollers objectAtIndex:1];
答案 1 :(得分:1)
您不应该进入另一个视图控制器并更改内容。相反,只需向DetailViewController发送一条消息,例如[detailViewController setCurrentEntry:selectedEntry]
。更好的是,使用通知或KVO让DetailViewController观察主列表中的选择。这样,两个视图控制器根本不需要相互引用;当您想要重新排列应用程序的布局,或者在模态视图中单独使用一个视图控制器时,这很方便。计划未来。