gpt4 book ai didi

iphone - NavigationController 和模态视图

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:41:36 25 4
gpt4 key购买 nike

我是 iOS 世界的新手,已经开始在模板代码之上构建自定义代码。很明显,请原谅我。

View 链以 MainWindow.xib 开始,其中包含 App Delegate Object、Window Object 和 Application ViewController。我不明白为什么那里需要那些东西。但据我了解,我需要提及在 "Nib Name" 属性中启动 ViewController 以启动我的自定义 View Controller (称为“EmptyViewController”)。它是一个虚拟 View Controller ,只是为了避免由于缺少有效的 View Controller 而发生崩溃。

我在 didFinishLaunchingWithOptions 中启动了一个单独的模态视图 Controller (MainViewController)。用于启动模态视图 Controller 的代码 --

self.window.rootViewController = self.viewController;
mainView = [[MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
// present the viewcontroller
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:mainView];

[self.viewController presentModalViewController:navController animated:NO];

// release it, because it's retained as modalViewController
[navController release];

我没有将这个 MainViewController 放在 MainWindow.xib 中,因为我想在 MainViewController 的根目录下进行导航。在 MainViewController 中,我在按下“帮助”按钮时按下 HelpViewController。但是 HelpViewController 不显示任何导航栏。我不明白为什么?

推送导航栏的代码 --

HelpViewController *helpVC = [[HelpViewController alloc] init];
[self.navigationController pushViewController:helpVC animated:YES];
[helpVC release];

所以我想了解——1) 为什么需要 MainWindow.xib?我可以删除它吗? (注意:我试图删除它,但随后出现黑屏)1.a) 为什么需要所有控件/对象 App Delegate 对象、Window 对象和 Application ViewController 对象?

2) 为什么 HelpViewController 不显示导航栏?3) 我注意到的另一件事是,如果我说 self.presentingViewController,则返回 EmptyViewController 句柄,而 popViewController 将我返回到 MainViewController。

谢谢

最佳答案

App Delegate 只是实现了一些应用级的“回调”,iOS 通过这些回调与您自己的代码进行通信。在 main.m 中,您可以看到 iOS 如何获知您的哪些类实现了 UIApplicationDelegate。 iOS 创建此类的一个实例并在适当的时候调用这些委托(delegate)方法(“回调”)(例如,当应用程序进入后台时)。

Window 是 iOS 提供的,您的应用需要告诉它要显示什么。而且,如您所见,这通常在 didFinishLaunchingWithOptions 中完成(iOS 调用它来通知您的应用程序已准备好开始)。

View Controller 是一个处理您在窗口上显示的内容状态的类。您不直接在窗口上显示内容,而是使用 View 。每个 View Controller 都有一个带有 UI 元素的 View 。

XIB 或 NIB 是 UI 描述/布局文件。 XIB 和 View 链接在一起;您需要告诉 XIB UI 元素属于哪个 View Controller 成员(例如 UILabel),并且告诉 XIB 在某个 UI 事件(例如用户点击按钮)。

这些是基础知识。我知道它并不能回答你所有的问题;我建议您阅读非常好的 Apple 文档。不要试图立即理解所有事情,就像你正在经历的事情一样,一开始确实看起来不合逻辑。

关于iphone - NavigationController 和模态视图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18487620/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com