iphone-在带有导航栏的选项卡栏界面中显示模式视图(slideup)

iphone-在带有导航栏的选项卡栏界面中显示模式视图(slideup),iphone,objective-c,tabs,uitabbarcontroller,modal-dialog,Iphone,Objective C,Tabs,Uitabbarcontroller,Modal Dialog,我是iphone编程新手,任何帮助都很好。我有一个应用程序,有3个选项卡,最后一个深入,因此创建了一个基于视图的应用程序,使用选项卡栏作为根控制器,并使用它添加了导航控制器 在我的第二个选项卡(UIViewController的子类)中,我试图显示一个模态视图,也是UIViewController的子类。在我的第二个选项卡中,当我试图显示模式视图时,应用程序崩溃并说“GDB:Program received SIGABRT”信号。这就是我所拥有的 ModalViewController *mvc

我是iphone编程新手,任何帮助都很好。我有一个应用程序,有3个选项卡,最后一个深入,因此创建了一个基于视图的应用程序,使用选项卡栏作为根控制器,并使用它添加了导航控制器

在我的第二个选项卡(UIViewController的子类)中,我试图显示一个模态视图,也是UIViewController的子类。在我的第二个选项卡中,当我试图显示模式视图时,应用程序崩溃并说“GDB:Program received SIGABRT”信号。这就是我所拥有的

ModalViewController *mvc = [[ModalViewController alloc] initWithNibName:@"ModalView" bundle:nil];
[self presentModalViewController:mvc animated:YES];
这里的“self”是第二个选项卡的UIViewController。如何在第二个选项卡中显示视图控制器的模式?我做错了什么


谢谢

ModalViewController必须是TabBarController的子级:

ModalViewController *mvc = [[ModalViewController alloc] initWithNibName:@"ModalView" bundle:nil];
[tabBarController presentModalViewController:newNavController
                                                       animated:YES];

内存泄漏,使用后必须释放对象[mvc释放]

Maggie给了我一个有点黑的答案UINavigationController不允许UIDABBARCONTROLLERS被推到它的导航堆栈上。tab bar小部件本身可以包含在导航屏幕上,因此一种方法是使用基于导航的应用程序模板。是的,对不起,我刚刚阅读了代码部分,并假设显示模式视图控制器时出现问题。将编辑我的答案。谢谢回复。我试过了,但是我没有定义“tabBarController”。我不在我的范围之内。在appdelegate中,我添加了选项卡栏和导航栏控制器。所以我得到了我的委托,并试图像这样访问tabcontroller,但仍然失败当然,它在当前控制器中未定义。您是否在应用程序代理中合成了属性“myTabController”?在当前控制器中,如何访问应用程序委托?您应该像这样访问它:
appDelegate=(MyAppDelegate*)[[UIApplication-sharedApplication]delegate]您是否为myTabController创建了一个IBOutlet并创建了该属性?向我们展示您的委托类文件以及如何创建myTabController?是使用xib文件还是以编程方式使用?在我的应用程序委托中,我有我的tabcontoller<代码>@interface TabNavAppDelegate:NSObject{UIWindow*窗口;IBOutlet uitabarcontroller*myTabController;}@property(非原子,保留)IBOutlet UIWindow*窗口@属性(非原子,保留)IBuitAbbarController*myTabController
在我当前的控制器中,我说
TabNavAppDelegate*delegate=(TabNavAppDelegate*)[UIApplication sharedApplication].delegate;[delegate.myTabController presentModalViewController:mvc动画:是];[mvc发布]我按照这个[创建我的选项卡栏和导航栏]
ModalViewController *mvc = [[ModalViewController alloc] initWithNibName:@"ModalView" bundle:nil];
[tabBarController presentModalViewController:mvc animated:YES];
[mvc release];