0

使用以下代码:

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)

视图呈现,但在完全滑到顶部之前它不会加载。Nav 控制器确实加载正确,您会看到它一直向上滑动。然而,它只是一个框架。换句话说,当导航控制器向上滑动到位时,您可以看到呈现视图控制器 - 然后加载 mMVC。

谢谢您的帮助!

4

4 回答 4

3

您的问题是您尝试创建 UINavigationController,同时将其用作 UINavigationController rootviewcontroller。修复这条线:

UINavigationController *mMNavVC = [[UINavigationController alloc] 
initWithRootViewController:mMNavVC];

对此:

MyModalViewController *mMVC = [[MyModalViewController alloc] init];
UINavigationController *mMNavVC = [[UINavigationController alloc]   initWithRootViewController:mMVC];

将在显示之前加载模态视图控制器。

于 2013-08-02T14:12:35.477 回答
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];
于 2013-08-02T13:02:30.153 回答
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 的视图的问题,这是一种解决方法。如果我发布的内容不起作用,则问题出在其他地方。试一试,看看现在是否可以。:)

于 2013-08-02T13:07:54.867 回答
0

好的。每个人的答案都会得到 1up,因为他们都对我有帮助。

LucOlivierDB 得到复选标记,因为这对我来说只是一件愚蠢的事情,我没有看到。

!!笔记:!!事实证明,我真正的问题是这行代码:

self.view.backgroundColor = [UIColor clearColor];

有人认为通过使视图透明来让所有视图继承背景会很聪明。因此,当它绘制视图时,它是透明的。由于在模态操作完成之前不认为绘制完成,您可以在此之前看到它下方的视图。多谢你们。你的电话让我思考和学习!

于 2013-08-02T17:08:53.757 回答