-1

我已经构建了一个基于标签栏控制器的应用程序。当我在其中一个选项卡视图上时,我希望能够滑动手指并切换到另一个选项卡视图,其中 tabBarController 上的索引未知。因此,我从其 nib 调用所需的视图控制器。视图被正确交换,但问题是它出现在标签栏本身的上方,完全覆盖它并使其变得无法使用!如何将视图向后推或标签栏向上?谢谢

- (IBAction)swipeLeftDetected:(UIGestureRecognizer *)sender
{
DesiredViewController *controllerInstance =[[DesiredViewController alloc]initWithNibName:@"DesiredViewController" bundle:nil];
controllerInstance.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controllerInstance animated:YES];
} 
4

1 回答 1

1

presentModalViewController:animated总是全屏显示:在 iPhone 和 iPod touch 设备上,modalViewController 的视图总是全屏显示。在 iPad 上,演示文稿取决于 modalPresentationStyle 属性中的值。

如果您真的使用 UITabBarController,它会实例化其选项卡的视图控制器。因此,尝试手动实例化其中一个选项卡的视图控制器是错误的。您将以一堆视图控制器实例结束。

将您的 UITabBarController 的属性设置selectedIndex为切换选项卡。我想你需要这个。但它会在没有动画的情况下切换。

如果您只知道要切换到的控制器的指针,请询问viewControllers有关控制器索引的属性,然后按其索引切换选项卡:

self.selectedIndex = [[self viewControllers] indexOfObject:viewController];
于 2013-05-11T15:06:25.043 回答