作为免责声明,我是一名 iOS 初学者,处于一个非常独特的位置。我是一名实习生,在工作中学习,测试应用程序的截止日期很严格,具有特定的规格。因此,不幸的是,我没有足够的时间学习有关 xCode 和 Objective C 的所有知识。
无论如何,我正在尝试创建一个类似于 iPad 滑出菜单的导航菜单。我已经查看了过去针对此类问题给出的大量示例代码。这一切都很好,但我无法理解他们在做什么。我认为这是因为被视图控制器和委托相当困惑。而且,由于我应该自己编写这一切,我不能仅仅建立在他们现有的代码之上。
我对这项工作的计划是拥有一个主视图控制器,在表格视图中包含导航菜单。这隐藏在普通 UIView 后面,直到按下按钮,此时普通 UIView 滑出屏幕足以显示菜单。选择菜单项后,正常的 UIView 将滑回其原始位置,并被相关的 UIView 替换,由其视图控制器控制。换句话说,单击与“Home”相关的菜单项将加载由 homeViewController 控制的 homeViewController.xib。这将加载到 tableView 顶部的普通 UIView 子视图中。
由于按下按钮,我可以在正常的 UIView 中加载视图。
homeViewController *_homeViewController = [[homeViewController alloc]initWithNibName:@"homeViewController"];
[self frontView] = _homeViewController.view;
该代码中可能存在一些语法错误,因为它来自内存。我目前无法访问带有我的代码的计算机,但这是一般要点。基本上,这会将主视图笔尖放在 frontView 上(即位于表视图上方的普通 UIView),但它没有连接到 homeViewController。或者至少我认为这是问题所在,当我按下一个按钮时,在 nib 和 homeViewController.h 之间正确连接,并且仅在 .m 文件中设置为 NSLog,应用程序崩溃。
知道以这种方式显示时如何将此笔尖连接到它的 viewController 吗?或者,在 IB 中创建 nib,不使用关联的 .h 和 .m 文件,并将主视图控制器也用作 homeViewController?或者,如果我的逻辑本身就有缺陷,我应该怎么做?NavigationControllers 的东西?
编辑:我还尝试了一种新方法——将 homeViewController 的文件所有者更改为 viewController,并将 homeViewController 操作上的按钮连接到 viewController。这也导致按下按钮时崩溃。我真的认为问题在于让多个视图控制器同时在屏幕上运行,或者有来自不同笔尖的多个视图,同时由屏幕上的一个视图控制器控制。