Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 不同子视图之间的iPad导航_Ios_Objective C_Ipad_User Interface - Fatal编程技术网

Ios 不同子视图之间的iPad导航

Ios 不同子视图之间的iPad导航,ios,objective-c,ipad,user-interface,Ios,Objective C,Ipad,User Interface,我是一名经验丰富的程序员,但对iOS/ObjC来说还是相当陌生的。我需要在现有的iPad应用程序中添加一个功能,但我不知道该怎么做 该应用程序有一个视图(我们称之为InfoView),其中有几个子组件,其中一个是tableview(tableview),两个是按钮(ButtonA和ButtonB)(以及其他与此问题无关的内容) 当按下按钮B时,TableView需要被其他一些打开了各种项目的视图(我们称之为DetailViewA)替换。(ButtonA将我们带回TableView-这些按钮的作用

我是一名经验丰富的程序员,但对iOS/ObjC来说还是相当陌生的。我需要在现有的iPad应用程序中添加一个功能,但我不知道该怎么做

该应用程序有一个视图(我们称之为InfoView),其中有几个子组件,其中一个是tableview(tableview),两个是按钮(ButtonA和ButtonB)(以及其他与此问题无关的内容)

当按下按钮B时,TableView需要被其他一些打开了各种项目的视图(我们称之为DetailViewA)替换。(ButtonA将我们带回TableView-这些按钮的作用类似于伪选项卡按钮)当选择DetailViewA中的一个项目时,DetailViewA需要替换为DetailViewB。当DetailViewB关闭时,detailViewA应重新出现

我相信我可以在按下ButtonA/ButtonB时通过简单地隐藏适当的按钮在TableView和DetailViewA之间切换,但我不知道如何很好地处理深入到DetailViewB并再次备份(最好是使用一些滑动动画)-我想也许我可以使用UINavigationController来实现这一点,但是经过一些研究,我仍然不知道如何在子视图中嵌入UINavigationController

一张图片能表达千言万语,下面是我对我所说内容的粗略描述:

+--------------------------------------------------------------------------+
|           InfoView                 |                TopView              |
|     [ButtonA]      [ButtonB]       |                                     |
|    (show table)  (show detail)     |                                     |
| ---------------------------------- |                                     |
|                                    |                                     |
|   this area contains TableView     |                                     |
|                                    |                                     |
|   when ButtonB is touched this     |           other stuff here          |
|   needs to display DetailViewA     |                                     |
|   with the ability to drill down   |                                     |
|   deeper to DetailViewB  (and      |                                     |
|      maybe deeper)                 |                                     |
或层级:([]表示不确定性/未实施)


实现此功能的最佳方法是什么?

您可以使用在视图中嵌入导航控制器。使用DetailViewA控制器作为根视图控制器设置导航控制器,然后调用以下代码嵌入导航控制器:

[self addChildViewController:self.detailNavigationController]; 
self.detailNavigationController.view.frame = frameOfTableView;
[self.view addSubview:self.detailNavigationController.view];
[self.detailNavigationController didMoveToParentViewController:self];  
按下按钮时,您将隐藏原始表格视图并显示导航控制器。导航控制器随后将处理细节视图之间的“向下钻取”

请注意,DetailViewA和DetailViewB需要视图控制器,而不仅仅是视图

希望这有帮助

[self addChildViewController:self.detailNavigationController]; 
self.detailNavigationController.view.frame = frameOfTableView;
[self.view addSubview:self.detailNavigationController.view];
[self.detailNavigationController didMoveToParentViewController:self];