选择tabbar项目时的当前视图控制器

时间:2015-03-27 05:59:30

标签: ios uitabbarcontroller popover

单击tabbar项时如何呈现视图控制器。 我只是想显示为一个popover。 使用故事板

我找到了解决方案,但这不起作用

  AddImage *yourViewController= (AddImage*)  [self.tabBarController.viewControllers objectAtIndex:3];

    CGFloat tabBarHeight = self.tabBarController.tabBar.bounds.size.height;
    CGRect rect = CGRectMake(0, 0, tabBarHeight, tabBarHeight);
    [AddImage presentPopoverFromRect:rect
                                                                             inView:self.tabBarController.tabBar
                                                           permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES];

2 个答案:

答案 0 :(得分:2)

为此目的
1)设置tabbar的委托

2)实施方法:-(void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item

3)现在显示特定项目的弹出窗口

答案 1 :(得分:1)

快捷键5

创建一个继承自UITabBarController的类并设置协议UITabBarControllerDelegate

class CustomTabController: UITabBarController, UITabBarControllerDelegate {

   override func viewDidLoad() {
       super.viewDidLoad()
       self.delegate = self 
   }
}

实施方法tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool

从那里开始,一个简单的if-else语句即可检查当前控制器类是否足够。

func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool {
    if viewController is YourViewController {
        self.present(YourViewController(), animated: true)
        return false
    } else {
        return true
    }
}