0

次のコードと逆のことが可能であるように、appDelegate から ViewController のメソッドにアクセスすることは可能ですか?

AppDelegate *ad = (AppDelegate *) [[UIApplication sharedApplication] delegate];

やってみると

ViewController *vc = (ViewController *) [[UIApplication sharedApplication] delegate];

エラーが出ます...

ありがとう!

4

2 に答える 2

2

あなたのでは、があなたのAppDelegateであると仮定すると、次のようにして、スタック上のすべてのビュー コントローラーのリストを取得できます。viewControllerrootViewController

NSLog(@"List of current active view controllers:%@", self.viewController.navController.viewControllers);

viewControllers で特定のビュー コントローラにアクセスするには:

[[self.viewController.navController.viewControllers objectAtIndex:i] someMethodOfThatViewController]; 
于 2012-06-27T12:56:37.503 に答える
1
ViewController *vc = (ViewController *)[UIApplication sharedApplication].keyWindow.rootViewController;

またはデリゲートにプロパティがある場合

YourAppDelegate *ad = (YourAppDelegate*)[UIApplication sharedApplication].delegate;
ViewController *vc = ad.yourViewControllerProperty;
于 2012-06-27T11:43:05.340 に答える