我已经基于标签栏控制器构建了一个应用程序。当我在其中一个标签视图中时,我希望能够滑动手指并切换到另一个标签视图,其中tabBarController上的索引未知。因此,我从它的笔尖调用所需的viewcontroller。视图被正确交换,但问题是它出现在标签栏本身上方,完全覆盖它并使其变得无法使用!如何将视图向后推或标签栏向上推?感谢
- (IBAction)swipeLeftDetected:(UIGestureRecognizer *)sender
{
DesiredViewController *controllerInstance =[[DesiredViewController alloc]initWithNibName:@"DesiredViewController" bundle:nil];
controllerInstance.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:controllerInstance animated:YES];
}
答案 0 :(得分:1)
presentModalViewController:animated
始终使用整个屏幕:在iPhone和iPod touch设备上,modalViewController的视图始终以全屏显示。在iPad上,演示文稿取决于modalPresentationStyle属性中的值。
如果您真的使用UITabBarController,它会实例化其选项卡的视图控制器。因此,尝试手动实例化其中一个选项卡的视图控制器是错误的。你将以一堆视图控制器实例结束。
将UITabBarController的属性selectedIndex
设置为切换选项卡。我想你需要这个。但它会在没有动画的情况下切换。
如果您只知道要切换到的控制器的指针,请询问viewControllers
属性有关控制器的索引,而不是按其索引切换选项卡:
self.selectedIndex = [[self viewControllers] indexOfObject:viewController];