在TabBar应用程序中显示ActionSheet的NavigationController

时间:2012-11-23 15:16:21

标签: ios

我是iOS新手。正在Android上开发。目前接管了一个iOS应用程序,我必须更新它的几个功能。

此应用程序基于TabBar。几个导航控制器被推入标签栏,用于管理它们之间的切换。但是现在,其中一个选项卡会打开一个包含几个选项的ActionSheet。

我必须在其中一个ActionSheet按钮上打开一个新的NavigationController。

这是一个片段,用于定义单击了哪个按钮:

switch (buttonIndex) {
    case 0:
        [self openMyNavigationController];
        break;
    case 1:
        break;
    case 2:
        break;            
    default:
        break;
}

我不知道openMyNavigationController方法应该如何显示

像这样开始:

UIViewController *myViewController = [[MyViewController alloc ] nitWithNibName:@"MyViewController" bundle:nil];

UINavigationController *navMyViewController = [[UINavigationController alloc] initWithRootViewController:myViewController]; 

如何在屏幕上显示新创建的NavigationController?

3 个答案:

答案 0 :(得分:1)

如果我理解你的问题,我想你需要

[self.navigationController pushViewController: myViewController animated:YES];

将新的viewcontroller推送到导航堆栈。

但我认为您为应用程序设计的内容是错误的,而且不是iOS标准。 Tabbar不是像按钮一样“做一个动作”(我也做了一些android项目,但它有所不同。如果你真的想做一个按钮,你需要使用工具栏而不是标签栏),它是用于切换页。我想你需要阅读iOS User Interface。希望这有用。

答案 1 :(得分:1)

您可以使用rootViewController模式显示该navigationController:

[self presentModalViewController:navController animated: YES];

答案 2 :(得分:0)

我将新的NavigationController链接到标签项。我还打开了该选项卡的ActionSheet菜单,这基本上是客户想要的,但是从用户视线来看最终是愚蠢的,因为另一个ViewControllers的按钮应该放在新打开的选项卡上...我希望客户改变主意。