了解 UIView 是否从 UITabBar 的“更多”菜单中推送



>有没有一种方法可以知道用户何时从UITabbar的"更多"视图中推送UIView?

我在 UITabBar 中有多个视图,有些视图最终出现在列出它们的"更多"视图中。我希望能够知道何时从此"更多"视图推送视图,而不是何时从 UITabBarItem 推送视图

谢谢!

您可以检查控制器的导航控制器是否是更多的导航控制器:

-(void)viewDidLoad {
    [super viewDidLoad];
    if (self.navigationController == self.tabBarController.moreNavigationController) {
        NSLog(@"Launcehed from more");
    }else{
        NSLog(@"Launcehed from tab bar");
    }
}

你的问题说UITabBar但我怀疑你的意思是UITabBarController.基于某些选项"最终出现在更多视图中"的方式,该视图由UITabBarController自动提供。

如果您的意思是UITabBarController那么是的,UITabBarController呈现的UIViewController可以很容易地确定它是否在更多选项中。

[self.tabBarController.moreNavigationController.viewControllers containsObject:self];

这将返回一个BOOL,如果该视图控制器(self)的选项列在UITabBarMore部分中,则该为true。

您可以对 UIView 进行子类化并添加一个属性sentFrom,当将其添加到任何控制器中时,您将传递给 UIView。没有已经实现的方法可以做到这一点,因此您必须自己跟踪这些事情。

不,UITabbarController不会公开该信息。

最新更新