在以下情况下使用 UINavigationController 的代码是什么?
- 基础应用程序基于 XCode 4 模板“Utility Application”,具有 MainView 和 FlipSideView Controller (即 MainView 不使用 UINavigationController,但模态打开 FlipSideview)
- 在另一面 View 中,我有一个 UITableView,它设置为执行配置设置
- 希望能够单击此 FlipSideview UITableView 的一行,然后使用 UINavigationController 概念,然后水平过渡到以编程方式生成的 UITableView,以便用户可以选择/更改值,然后一旦完成,他们可以单击左上角的后退按钮(UINavigationController 将提供)
- 对于 XIB 文件,MainView 和 FlipSideView 将有一个 XIB 文件(来自模板),但以编程方式生成的“选择值” View 不会有一个
所以我实际上不确定在这种情况下在哪里/如何创建/保留/使用 UINavigationController?这里的代码是什么样的,UINavigationController 变量保存在哪里,FlipSideView XIB 是否需要修改?
附言。事实上,FlipSideview 本身是否必须更改以在顶部合并一个导航栏? (然后我必须将现有模板的 DONE 按钮从它的导航栏设置为新的 UINavigationController 导航栏我猜)
附言。尝试这样做但出现错误:
- (void)viewDidLoad
{
[super viewDidLoad];
self.uiNavController = [[UINavigationController alloc] initWithRootViewController:self];
self.navigationController = self.uiNavController;
// ==> error: object cannot be set - either readonly property or no setter found
}
最佳答案
为此,您的 FlipSideViewController 本身应该实现 UINavigationControllerDelegate。
如何显示 FlipSideView?
FlipSideViewController *flipSideView = [[FlipSideViewController alloc] init..];
[self presentModalViewController:flipSideView animated:YES];
[flipSodeView release];
像这样????
然后你必须把它改成
FlipSideViewController *flipSideView = [[FlipSideViewController alloc] init..];
UINavigationController *uiNavController = [[UINavigationController alloc] initWithRootViewController:flipSideView];
[self presentModalViewController:uiNavController animated:YES];
[flipSideView release];
[uiNavController release];
关于iphone - 如何从第二层向下建立 UINavigationController(不是从 Delegate/RootController 层),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645502/