1

I've got a view that I use for adding data into a table. I show this view using presentViewController:

AddViewController *avc = [self.storyboard instantiateViewControllerWithIdentifier:@"addview"];
[self presentViewController:avc animated:YES completion:nil];

This UINavigationController is the root view controller for a UIViewController that displays the add controls.

I trigger this UINavigationController from a couple of different places in my project and I'd like to have slightly different text for each. How can I interact with the UIViewController from where I call presentViewController, or otherwise change UIViewController depending on where it was invoked?

4

2 に答える 2

1

OK、次のようにナビゲーション コントローラーの rootView コントローラーにアクセスできます。

UINavigationController *yourNavigationController = [self.storyboard instantiateViewControllerWithIdentifier:@"yourViewControllerID"];

YourRootController *yourRootController = (YourRootController*)[yourNavigationController topViewController];

yourRootController.someproperty = someValue

それよりも、取得したView Controllerで必要なプロパティを変更するだけです。あなたが探していたのはこのようなものでしたか教えてください。

于 2013-07-30T13:32:56.333 に答える
0
UIViewController *controller= (UIViewController)[self.navigationController subviews] count-2 ];

controller は、スタックの最後から 2 番目の View Controller です。add を呼び出したものです。

の値に応じて[controler class]、テキストを設定できます。

于 2013-07-30T13:31:50.913 に答える