0

如下图所示,我实现了导航控制器来回前进。这很好用。

我的问题是如何在 tableViewController 的页面中实现另一个导航控制器。每当用户单击任何列时,都会将他带到所选列的详细信息。

我想知道如何在页面中实现导航控制器。

在此处输入图像描述

4

1 回答 1

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]; \
}
于 2013-07-18T20:04:38.950 回答