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觀察主列表中的選擇。這樣,兩個視圖控制器根本不需要互相參照;當你想重新安排你的應用程序的佈局時,這很方便,或者在模態視圖中單獨使用一個視圖控制器。規劃未來。

相關問題