“在标签栏控制器内的导航控制器中以模态方式呈现控制器”的问题

时间:2010-12-01 02:27:04

标签: ios uitabbarcontroller modal-dialog

我的应用有两种不同的模式。应用程序委托中有一个标签栏控制器。有两个选项卡,都使用子类视图控制器。两个视图控制器基本上都包含一个导航控制器。导航控制器有他们的根视图控制器,通常在更改屏幕时,我只需按下并弹出相应导航控制器的控制器。这具有(正常)效果,即底部标签栏始终可见,非常棒且完好无损。

这次我想以模态方式呈现屏幕,这样用户除了使用两个按钮确认或取消页面之外不能做任何其他事情,即我想隐藏底部标签栏。这将是我想到的以模态方式呈现视图的情况,但视图显示在导航控制器边界内,因此底部标签栏仍然可见,这会导致应用程序导航混乱。我不确定模态显示的视图是如何隐藏标签栏的。这里的大多数问题似乎都有相反的问题(想要(错误地)呈现模态视图并让标签栏可见)。

这些是我的尝试:

[self presentModalViewController:controller animated:YES]; // inside tab bar controller :-(
[self.tabBarController presentModalViewController:controller animated:YES]; // nothing is displayed. The new controller is instantly deallocated.
[self.navigationController presentModalViewController:controller animated:YES]; // inside tab bar controller :-(

调查一下,self.tabBarController实际上是零。似乎没有回到标签栏控制器的链接...我想,要在标签栏顶部显示模式,我需要获得该标签栏控制器的链接?

1 个答案:

答案 0 :(得分:1)

我似乎找到了一个解决方案,我不确定它是犹太的,因为不知何故我无法使用视图控制器的self.tabBarController指针,我在其中启动了视图控制器调用。

我所做的是达到app委托,app委托将标签栏控制器定义为公共属性。我可以使用该标签栏控制器属性以模态方式在屏幕上的所有内容上显示我的视图控制器。