我在管理我的应用程序中的视图时遇到了困难,如果有人提供一些说明,我将不胜感激。在我看来,该程序按以下方式构建为层次结构。
BNG_AppViewController:UIViewController
-通话-
NameListSelectionController:UIViewContoller
-通话-
GameViewController:UIViewController
-通话-
NameResultsController:UIViewController
使用接口构建器中的 XIB 构建的所有子视图都以与以下相同的方式调用:
NameListSelectionController *NameListSelectionControllerScreen = [[NameListSelectionController alloc] initWithNibName:@"NameListSelectionController"
bundle:nil];
[self.view addSubview:NameListSelectionControllerScreen.view];
当我想向上移动视图层次结构时,我在控制器类中使用与以下相同的调用——通常使用按钮来触发调用。
[self.view removeFromSuperview];
使用这种方法,我可以以线性方式上下移动我的层次结构。
但是,我希望能够做的是,当我回到我的层次结构时,跳过第二级控制器(即上面的 NameListSelectionController)并直接从第三级转到第一级。
到目前为止,我尝试在沿层次结构向下调用我的第三级时从层次结构中删除第二级视图,但无济于事。
[self.view removeFromSuperview];
gameScreen = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil];
[self.view addSubview:gameScreen.view];
然而,我似乎最终回到了我的第一级,对代码的第二行和第三行没有任何明显的影响。我还尝试将层次结构的第二级发送到后面,但没有任何结果。
我将不胜感激任何正确方向的指针,包括任何关于如何修改我的程序结构的大图想法。我需要以上述线性方式指导用户,但我不知道我需要以这种方式构建程序。
我确实阅读了所有关于子视图的文档和我能找到的 removeFromSuperview 调用,但没有看到做我想做的事情的方法,或者我不明白我读到的内容。我确实研究了使用 NavigationController 的可能性,但考虑到我正在尝试做的事情(或者我可能看不到它们),这似乎并没有提供任何优势。