如何更新splitViewController中的detailView?

时间:2010-02-12 13:31:41

标签: objective-c cocoa-touch uisplitviewcontroller uisplitview

我正在尝试更新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中的出口?

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

定义DetailViewController;在您的示例中,detailViewController是:

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

答案 1 :(得分:1)

您不应该进入另一个视图控制器并更改内容。相反,只需向DetailViewController发送一条消息,例如[detailViewController setCurrentEntry:selectedEntry]。更好的是,使用通知或KVO让DetailViewController观察主列表中的选择。这样,两个视图控制器根本不需要相互引用;当您想要重新排列应用程序的布局,或者在模态视图中单独使用一个视图控制器时,这很方便。计划未来。