使用以下代码:
MyModalViewController *mMVC = [[MyModalViewController alloc] init];
UINavigationController *mMNavVC = [[UINavigationController alloc] initWithRootViewController:mMNavVC];
mMNavVC.navigationBar.barStyle = UIBarStyleBlackOpaque;
[[[appdelegate window] rootViewController] presentViewController:mMNavVC animated:YES completion:nil];
[mMVC release];
[mMNavVC release];
//(Yes we are not using ARC yet - kills me)
视图显示但在完全滑动到顶部之前它没有加载。导航控制器确实正确加载,您看到它一直向上滑动。然而,它只是一个框架。换句话说,当导航控制器滑动到位时,您可以看到呈现视图控制器 - 然后加载mMVC。
感谢您的帮助!
答案 0 :(得分:3)
您的问题是您正在尝试创建UINavigationController,同时将其用作UINavigationController rootviewcontroller。修复此行:
UINavigationController *mMNavVC = [[UINavigationController alloc]
initWithRootViewController:mMNavVC];
到此:
MyModalViewController *mMVC = [[MyModalViewController alloc] init];
UINavigationController *mMNavVC = [[UINavigationController alloc] initWithRootViewController:mMVC];
将在显示之前加载模态视图控制器。
答案 1 :(得分:1)
MyModalViewController *mMVC = [[MyModalViewController alloc] init];
UINavigationController *mMNavVC = [[UINavigationController alloc] initWithRootViewController:mMNavVC];
mMNavVC.navigationBar.barStyle = UIBarStyleBlackOpaque;
[[[app window] rootViewController].navigationController pushViewController: mMNavVC animated:YES];
[mMVC release];
[mMNavVC release];
答案 2 :(得分:1)
尝试添加您访问该vc视图的行,即
MyModalViewController *mMVC = [[MyModalViewController alloc] init];
UINavigationController *mMNavVC = [[UINavigationController alloc] initWithRootViewController:mMNavVC];
mMNavVC.navigationBar.barStyle = UIBarStyleBlackOpaque;
mMVC.view.backgroundColor = [UIColor whiteColor];
[[[appdelegate window] rootViewController] presentViewController:mMNavVC animated:YES completion:nil];
[mMVC release];
[mMNavVC release];
这是一种解决方法,解决了在调用navigationController的viewDidAppear方法之前未加载viewController的视图的问题。如果我发布的内容不起作用,则问题出在其他地方。 试试吧,告诉现在是否可以。 :)
答案 3 :(得分:0)
行。每个人都得到一个答案,因为他们对我都有帮助。
LucOlivierDB获得了复选标记,因为这对我来说只是一个愚蠢的事情。
!!注:!!因为它证明了我的真正问题是这行代码:
self.view.backgroundColor = [UIColor clearColor];
有人认为通过使视图透明来让所有视图继承背景会很聪明。因此,当它绘制视图时,它将它绘制成透明的。由于在模态操作完成之前不被认为已完成绘图,因此您可以在此之前看到它下面的视图。 多谢你们。你打电话让我思考和学习!