2

我想更新splitViewController中的detailView。 这是我尝试:如何更新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中的网点?

感谢您的帮助。

回答

5

定义DetailViewController;在你的例子中,detailViewController是:

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

1

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

相关问题