UINavigationController - 基础知识
我正在尝试使用 UINavigationController 但我不确定如何使用。到目前为止(大约一年),我一直在使用presentModalViewController 和dismissModalViewController 来呈现/关闭视图控制器。
所以,这就是我所做的。我的主视图控制器(启动时显示的第一个)称为 MainViewController,它扩展了 UIViewController。
所以我在我的应用程序委托中创建了这个启动函数:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
MainViewController *controller = [[MainViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:controller];
[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];
return YES;
}
在我的 MainViewController 的 viewDidLoad 方法中:
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"Title";
self.navigationController.navigationBar.tintColor = [Constants barColor];
....more code...
}
但是,在我的 MainViewController 中,我想提供另一个名为 SecondViewController 的视图控制器,它需要一个带有后退箭头按钮的 UINavigationBar。那么我是否可以让 SecondViewController 扩展 UIViewController 并通过在 viewDidLoad 方法中设置 title 和 backButton 来执行相同的操作?我该如何呈现它?我应该怎么做才能实现这个目标?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您需要设置一个根视图控制器,最简单的方法是从苹果模板开始。
这就是奇迹发生的地方:
导航控制器为您完成所有工作(后退按钮、标题、动画) - 它会保持跟踪!
我的工作流程是这样的:
在 viewDidLoad 中设置 MutableArray,向其中添加控制器,例如:
然后在您的委托中:
这以及更多内容可以通过阅读一本像样的初学者书籍来学习,例如 开始 iPhone 开发
另外,苹果文档总是好的:)
You'll need to set a root view controller up, it's easiest starting from the apple template.
Here's where the magic happens:
The nav controller does all the work for you (back buttons, titles, animations) - it keeps track!
My workflow is this:
Setup MutableArray in the viewDidLoad, add controllers to it, e.g:
Then in your delegate:
This, along with a lot more can be learnt by reading a decent beginner book such as Beginning iPhone Development
Also, apple docs are always good :)
UINavigationController 是 UIViewController 的子类,但与 UIViewController 不同,它通常不适合您进行子类化。这是因为除了导航栏的视觉效果之外,导航控制器本身很少进行自定义。 UINavigationController 的实例可以在代码中或在 XIB 文件中相对轻松地创建。
请访问“如何以编程方式添加 UINavigationController”
UINavigationController is a subclass of UIViewController, but unlike UIViewController it’s not usually meant for you to subclass. This is because navigation controller itself is rarely customized beyond the visuals of the nav bar. An instance of UINavigationController can be created either in code or in an XIB file with relative ease.
Please visit "How to add UINavigationController Programmatically"
您应该将其推送到导航堆栈上。
斯坦福大学 iPhone 的讲座课程将教您很多有关导航栏的知识。 (快速阅读)
基本上,您需要这段代码的核心:
您可以使用 PopViewController 以编程方式返回,但后退按钮是自动创建的。
这是一些源代码 摘自讲座。它准确地涵盖了您遇到的问题。
You should Push it onto the navigation stack.
This Lecture by Stanford's iPhone Course will teach you a lot about Navigation Bars. (It's a quick read)
Basically at the heart of it you need this code:
You can use PopViewController to go back programmatically, but the Back Button is automatically created.
Here's some source code from the Lecture. It covers exactly what you are having issues with.