【问题标题】:any code example of how access viewcontroller from uitabbarcontroller?任何关于如何从 uitabbarcontroller 访问 viewcontroller 的代码示例?
【发布时间】:2012-04-24 23:21:34
【问题描述】:

我是 iphone 开发新手

我用 tabbar 和 tabbaritems 用他们的 viewcontroller 创建了我的故事板

但现在我想从我的 uitabbarcontroller.m 访问 viewcontroller 实例

有人有任何带有代码示例的网址吗?

我发现的代码是非常简单的使用或标签栏,大部分只是故事板,没有任何帮助......

谢谢

---穆勒帮助后的解决方案

在 uitabbarcontroller 上:(我放置了一个断点并且能够检索视图控制器的集合)

    - (void)viewDidLoad
    {
       NSArray *arr = self.viewControllers;
    }

【问题讨论】:

    标签: iphone ios xcode


    【解决方案1】:

    你可以使用类似的东西

    NSArray *array = [tabBarControllerName viewControllers];
    

    这将返回 tabBarController 中所有视图的数组,因此如果您的第一个视图属于类,假设 TestView 我们可以执行类似的操作

    TestView *tv = (TestView *)[array objectAtIndex:0];
    

    请注意,这不是我的想法,所以可能有点偏离。请务必查看苹果提供的课程参考资料:UITabBarController Class Reference

    编辑:你真的可以像这样写一行:

    TestView *tv = (TestView *)[[tabBarControllerName viewControllers] objectAtIndex:0];
    

    EDIT2:如果 UITabBarController 在您的 AppDelegate 中通过以下方式声明,您可以访问它:

    AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
    TestView *tv = (TestView *)[[[appDelegate tabBarController] viewControllers] objectAtIndex:0]; 
    

    【讨论】:

    • tabbar 和控制器如何通信让我很困惑,我应该把代码放在哪里来获取视图控制器数组?
    • 你试图从哪里访问你的视图控制器? UITabBarController.m?如果是这样,您应该已经创建了一个 UITabBarController 对象(我希望如此)。如果是这样,您可以将其放置在 UITabBarController.m 中需要访问它们的位置
    • tabBar 本身可以认为是一个数组,当你在 tabBar 中选择一个按钮时,tabBar 执行要加载到屏幕上的视图(这是一个简单的描述方式,但是确实比这更具技术性)
    • 我明白了,我确实有 UITabBarController 类和其中的两个 UIViewController,我在情节提要上创建了它们并关联到 .m 文件。现在我只是不知道在哪里放置代码以返回您之前显示的视图控制器数组
    • 我应该把它放在 UIViewController 中的 - (void)viewDidLoad 上吗? xcode intelisense 没有显示任何内容...(我只想调试并在监视列表中查看视图控制器返回...)
    猜你喜欢
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 1970-01-01
    • 2012-11-21
    • 2020-08-03
    • 1970-01-01
    相关资源
    最近更新 更多