Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在显示根视图控制器之前设置其属性?_Ios_Uinavigationcontroller_Segue_Presentviewcontroller_Rootview - Fatal编程技术网

Ios 如何在显示根视图控制器之前设置其属性?

Ios 如何在显示根视图控制器之前设置其属性?,ios,uinavigationcontroller,segue,presentviewcontroller,rootview,Ios,Uinavigationcontroller,Segue,Presentviewcontroller,Rootview,我在故事板中有一个特定的UINavigationController,我从另一个视图控制器以模态方式呈现: UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; UINavigationController *myNavController = [storyboard instantiateViewControllerWithIdentifier:@"myNavController"];

我在故事板中有一个特定的
UINavigationController
,我从另一个视图控制器以模态方式呈现:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *myNavController = [storyboard instantiateViewControllerWithIdentifier:@"myNavController"];
[self presentViewController:myNavController animated:YES completion:nil];
此导航控制器已将另一个
UIViewController
设置为其在
storyboard
中的根视图控制器。我想在显示此根视图控制器之前为其设置一些属性,但我尝试了以下方法:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *myNavController = [storyboard instantiateViewControllerWithIdentifier:@"myNavController"];
[self presentViewController:myNavController animated:YES completion:nil];
 MyRootViewController *myRootViewController = [storyboard instantiateViewControllerWithIdentifier:@"myRootViewController"];
[myRootViewController setSelectedItem:selectedItem];
[myRootViewController setDelegate:self];
但是当我试图设置其属性时,根视图控制器似乎还没有加载


我怎么能这样做?谢谢

如果您已经调试过,您将发现由
myRootViewController*myRootViewController=[storyboard InstanceeviewcontrollerwhiteIdentifier:@“myRootViewController”]制作的
myRootViewController
不是
myNavController
真正的rootViewController

此方法
-instanceeviewcontrollerwhiteIdentifier:
只需为您提供一个全新的UIViewController实例

因此,如果您想要获得真正的rootViewController,只需将其替换为以下内容:

UIStoryboard*情节提要=[UIStoryboard情节提要,名称:@“Main”bundle:nil];
UINavigationController*myNavController=[情节提要实例化eviewcontrollerwhiteIdentifier:@“myNavController”];
MyRootViewController*MyRootViewController=myNavController.ViewController[0];
[myRootViewController setSelectedItem:selectedItem];
[myRootViewController setDelegate:self];
[自我呈现视图控制器:myNavController动画:是完成:无];