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 のアウトレットにアクセスするにはどうすればよいのでしょうか?

手伝ってくれてありがとう。

4

2 に答える 2

5

DetailViewController を定義します。あなたの例では、detailViewController は次のとおりです。

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

于 2010-03-08T23:22:03.893 に答える
1

別のViewControllerの内部に手を伸ばして、物事を変更するべきではありません。代わりに、DetailViewControllerにメッセージを送信するだけ[detailViewController setCurrentEntry:selectedEntry]です。さらに良いことに、通知またはKVOを使用して、DetailViewControllerがマスターリストの選択を監視できるようにします。このように、2つのビューコントローラは相互に参照する必要はありません。これは、アプリのレイアウトを再配置する場合や、モーダルビューなどで1つのビューコントローラーを単独で使用する場合に便利です。将来の計画。

于 2010-08-09T22:31:34.233 に答える