- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 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/
我来自 Asp.Net 世界,试图理解 Angular State 的含义。 什么是 Angular 状态?它类似于Asp.Net中的ascx组件吗?是子页面吗?它类似于工作流程状态吗? 我听到很多人
我一直在寻找 3 态拨动开关,但运气不佳。 基本上我需要一个具有以下状态的开关: |开 |不适用 |关 | slider 默认从中间开始,一旦用户向左或向右滑动,就无法回到N/A(未回答)状态。 有人
我是一名优秀的程序员,十分优秀!