我有一些问题:
1)当您说“创建了我自己的 UITabBarController”时,您的意思是您继承了 UITabBarController 吗?
2)如何调用呈现模态视图控制器?是否有一个按钮或正在被点击的东西来调用呈现模态视图控制器?
您说控制器“位于主窗口上”,并且当您呈现模态视图时,您“将标签栏控制器视图置于前面”。这让我很困惑。视图控制器应该“属于”标签栏控制器。
我创建了一个小项目并让它为我工作,所以这就是我所做的:
1)我创建了一个UITabBarController的子类:
@interface MyTabBarController : UITabBarController
{
}
- (IBAction)presentModalView:(id)sender;
- (void)dismissModalview;
@end
@implementation MyTabBarController
- (IBAction)presentModalView:(id)sender
{
MyModalViewController* myModalView = [[MyModalViewController alloc] initWithNibName:@"ModalView" bundle:nil];
[myModalView setTbc:self];
[self presentModalViewController:myModalView animated:YES];
}
- (void)dismissModalview;
{
[self dismissModalViewControllerAnimated:YES];
}
@end
2)然后对于我的模态视图控制器,我创建了 UIViewController 的子类:
@interface MyModalViewController : UIViewController
{
MyTabBarController* tbc;
}
@property (retain) MyTabBarController* tbc;
- (IBAction)returnToTabBar:(id)sender;
@end
@implementation MyModalViewController
@synthesize tbc;
- (IBAction)returnToTabBar:(id)sender;
{
[tbc dismissModalview];
}
@end
3)我将一个标签栏控制器拖到 MainWindow.xib 中,将其文件所有者设置为 MyTabBarController,并将视图控制器添加到两个标签(我使用检查器将每个标签的背景颜色设置为不同的颜色)。在第二个选项卡的视图控制器中,我添加了一个按钮并将其目标设置为 MyTabBarController 中的操作“presentModalView:”。
4) 我创建了一个新的 xib,其中包含一个名为 ModalView 的视图,并将其 File's Owner 设置为 MyModalViewController。我将视图的背景颜色设置为与上述两种颜色不同的颜色,并在视图中添加了一个按钮。我将按钮的目标设置为 MyModalviewController 中的操作“returnToTabBar:”。
显然,我必须将标签栏视图添加到应用程序委托中窗口的子视图中。这对我有用,并在我在第二个选项卡上时呈现了一个模态视图控制器,当我关闭它时,我返回到选项卡栏控制器中的第二个选项卡。
我希望这有帮助!