Ios 如何正确设置UINavigationController并向堆栈中添加视图

Ios 如何正确设置UINavigationController并向堆栈中添加视图,ios,uinavigationcontroller,stack,addsubview,Ios,Uinavigationcontroller,Stack,Addsubview,现在,这将创建一个navigationController,但当我尝试显示secondViewController时,它确实会为该视图显示正确的导航栏,但我看到的是黑色背景,而不是实际视图。将secondViewController添加为子视图是可行的,但当我现在尝试显示第三个视图时,它会再次向我显示正确的导航栏以及该视图的设置标题,但我仍然可以看到secondViewController的视图。现在,我的问题是如何将viewController添加到navigationController,以

现在,这将创建一个navigationController,但当我尝试显示secondViewController时,它确实会为该视图显示正确的导航栏,但我看到的是黑色背景,而不是实际视图。将secondViewController添加为子视图是可行的,但当我现在尝试显示第三个视图时,它会再次向我显示正确的导航栏以及该视图的设置标题,但我仍然可以看到secondViewController的视图。现在,我的问题是如何将viewController添加到navigationController,以便它们正确显示?我甚至需要添加它们吗?我已经通读了apple类参考,但没有任何代码。

试试这个:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

self. window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
UINavigationController *navVC = [UINavigationController new];
UIStoryboard *mStoryboard = [UIStoryboard storyboardWithName:@"your storyboard name" bundle:nil];

ViewController *VC1 = [mStoryboard instantiateViewControllerWithIdentifier:@"VC"];


[navVC setViewControllers:[NSArray arrayWithObject:VC1] animated:NO];
[self. window setRootViewController:navVC];

[self. window makeKeyAndVisible];

return YES;
  }
现在,在VC1内部,使用

self. window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
UIStoryboard *mStoryboard = [UIStoryboard storyboardWithName:@"your storyboard name" bundle:nil];
ViewController *VC1 = [mStoryboard instantiateViewControllerWithIdentifier:@"VC"];
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:VC1];
[self. window setRootViewController:navVC];
[self. window makeKeyAndVisible];
return YES;
试试这个:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

self. window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
UINavigationController *navVC = [UINavigationController new];
UIStoryboard *mStoryboard = [UIStoryboard storyboardWithName:@"your storyboard name" bundle:nil];

ViewController *VC1 = [mStoryboard instantiateViewControllerWithIdentifier:@"VC"];


[navVC setViewControllers:[NSArray arrayWithObject:VC1] animated:NO];
[self. window setRootViewController:navVC];

[self. window makeKeyAndVisible];

return YES;
  }
现在,在VC1内部,使用

self. window = [[UIWindow alloc]initWithFrame:[[UIScreen mainScreen]bounds]];
UIStoryboard *mStoryboard = [UIStoryboard storyboardWithName:@"your storyboard name" bundle:nil];
ViewController *VC1 = [mStoryboard instantiateViewControllerWithIdentifier:@"VC"];
UINavigationController *navVC = [[UINavigationController alloc] initWithRootViewController:VC1];
[self. window setRootViewController:navVC];
[self. window makeKeyAndVisible];
return YES;

我已经这样做了,但是当它按下视图控制器时,它没有正确设置视图,导航栏是正确的,但是视图不是。按下是第二步。您是否在didFinishLaunchingWithOptions中完全实现了我的代码示例?您是否为序列图像板中的每个viewcontroller设置了所有序列图像板标识符,并在代码中使用相同的标识符来实例化它们?你看到你的第一个viewController了吗?我看到了我的第一个viewController,但我的问题是我没有看到我的第二个或第三个,你如何实例化你的以下vcs?如果标识符设置正确,您是否控制了它们?看我答案中的编辑。哦,天哪,太明显了。谢谢你的帮助!现在一切正常:)我已经这样做了,但是当它按下视图控制器时,它没有正确设置视图,导航栏是正确的,但是视图不是。按下是第二步。您是否在didFinishLaunchingWithOptions中完全实现了我的代码示例?您是否为序列图像板中的每个viewcontroller设置了所有序列图像板标识符,并在代码中使用相同的标识符来实例化它们?你看到你的第一个viewController了吗?我看到了我的第一个viewController,但我的问题是我没有看到我的第二个或第三个,你如何实例化你的以下vcs?如果标识符设置正确,您是否控制了它们?看我答案中的编辑。哦,天哪,太明显了。谢谢你的帮助!现在一切正常:)