2

我正在尝试更新 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中访问outlets的正确方法是怎样的呢?

感谢帮助。

4

2 回答 2

5

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

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

于 2010-03-08T23:22:03.893 回答
1

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

于 2010-08-09T22:31:34.233 回答