【问题标题】:How to get current viewController class name?如何获取当前的 viewController 类名?
【发布时间】:2012-08-09 14:17:06
【问题描述】:

但问题是我的应用同时具有 UInavigationController 和 UITabBarController

所以调用 navigaionController.topViewController 告诉我我有 UItabBarController

self.window.rootViewController 返回 UINavigationController

非常感谢

【问题讨论】:

  • 你甚至可以有多个导航控制器。每个选项卡一个是可能的。但是,我不太了解您的问题和您的问题。您能否尝试重新表述您的问题?
  • 如果你已经将 UITabBarController 推送到 UINavigationController 堆栈,你不应该这样做。
  • link 好的,这是屏幕截图,也许它可以让我的问题清楚。对不起,另一个网站 - 我没有足够的积分来发布图片。
  • 真正的问题是你需要它做什么?大多数时候你不应该太在意运行时类的名称是什么,也许你试图以错误的方式解决问题......
  • 试图以另一种方式设置问题:我有一个 MyViewController 类,所以我创建了它的一个实例,然后在其上添加 UInavigationController,然后在其上添加 UITabBarController。问题是如何获得名称“MyViewController”

标签: objective-c cocoa-touch uinavigationcontroller uitabbarcontroller


【解决方案1】:

您可以检查它使用的类的类型 [VC isKindOfClass:(myVCClass 类)]

【讨论】:

    【解决方案2】:

    tabbarcontroller 被设计为应用程序的顶部/根视图控制器。来自文档:

    因为 UITabBarController 类继承自 UIViewController 类,所以标签栏控制器有自己的视图,可以通过 view 属性访问。部署选项卡栏界面时,您必须将此视图安装为窗口的根目录。与其他视图控制器不同,标签栏界面永远不应安装为另一个视图控制器的子级。

    在标签内有导航控制器,在标签上的导航控制器内有其他视图控制器。

    【讨论】:

      【解决方案3】:

      view.class 以字符串形式返回类名:

      NSLog (@"Class:%@", view.class);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-13
        • 1970-01-01
        • 1970-01-01
        • 2011-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多