2

因此,我开始在 Xcode 3.2.5 中以完全基于视图的方式开发应用程序,然后升级到 Xcode 4.4。我有一个 NIB 文件(两个,MainWindow.xib 和我的默认视图控制器的 .xib)。我有一堆视图控制器,直到现在我一直在通过presentModalViewController.

问题是现在我希望其中一个视图是基于导航的,也就是说,当用户进入它时,他们会获得顶部导航栏,并且从那时起他们所获得的一切都是通过导航控制器完成的。当他们完成并完全退出时,他们会回到常规的非导航控制器使用视图。

似乎这是一个没有人完全描述答案的常见问题。或者看起来很有帮助的响应,例如如何将导航控制器添加到基于视图的应用程序?对我来说太模糊了。UINavigationController我基本上是在寻找有关如何将 a 添加到项目中以仅显示其中一些视图的分步说明。

4

1 回答 1

1

如果您的视图已经按预期工作,那么将导航控制器添加到模态视图非常简单。

NewViewController *newView = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:nil];
UINavigationController *navView = [[UINavigationController alloc] initWithrootViewController:newView];
[self presentModalViewController:navView animated:YES];

您的模态视图将继承导航栏和用于在该模态中呈现更多视图的所有属性。完成模式后,只需将其关闭。

在导航控制器上加载更多视图非常容易。

AnotherViewController *anotherView = [[AnotherViewController alloc] initWithNibName:@"AnotherViewController" bundle:nil];
[self.navigationController pushViewController:anotherView animated:YES];

要从堆栈中手动弹出视图控制器:

// note, you won't need to call this for the auto created back button, that is handled for you
// this would only be if you wanted manual control over going back outside the back button
[self.navigationController popViewControllerAnimated:YES];

一旦你完成了模态视图,你可以从任何地方调用它来让它消失,返回到你原来的视图。方便多个详细信息屏幕、注册过程等。

[self.navigationController dismissModalViewControllerAnimated:YES];
于 2012-08-29T16:01:30.840 回答