如下图所示,我实现了导航控制器前后移动。 这很好。
我的问题是如何在tableViewController的页面中实现另一个导航控制器。每当用户点击任何列时,都会让他详细说明所选列的信息。
我想知道如何在页面中实现导航控制器。
答案 0 :(得分:0)
UISplitViewController似乎是你想要的最佳解决方案,但既然你说你不想使用它,那么让我们直接回答问题吧。 没有什么可以阻止您以编程方式创建UINavigationController,使用某个视图控制器启动它,并将所述UINavigationController添加为当前视图控制器的子视图。
因此,您将拥有主要的NavigationController,它在给定视图上有一个视图控制器,左侧是一个表视图,右侧是一个地图视图。当用户单击相应的表条目时,您将导航控制器添加到当前视图控制器,无论您想要的大小/位置(例如,在地图下方,或者可能在地图上,完全隐藏它?)。当用户希望删除导航控制器(可能单击另一个表项?)时,只需删除导航控制器子视图。
您可能需要将所述导航控制器添加为childViewController,以允许它获取所有整齐的旋转函数调用和内容。我实际上已经定义了将视图添加为childViewController和子视图,然后根据需要删除它。当然,这假设你有一个视图,你要添加导航控制器;并且您希望导航控制器占用整个视图(以便适当调整视图大小)
#define addChildViewController(childController, parent) { \
[self addChildViewController:childController]; \
childController.view.frame = CGRectMake(0,0,parent.frame.size.width,parent.frame.size.height); \
[parent addSubview:childController.view]; \
[childController didMoveToParentViewController:self]; \
}
#define removeChildViewController(child) { \
[child willMoveToParentViewController:nil]; \
[child.view removeFromSuperview]; \
[child removeFromParentViewController]; \
}