【问题标题】:UITabBarController custom class in storyboard doesn't work故事板中的 UITabBarController 自定义类不起作用
【发布时间】:2012-05-31 06:35:39
【问题描述】:

我在情节提要中设置了一个UITabBarController,有 4 个选项卡,每个选项卡都链接到一个 UITableViewController。我已将UITabBarController 的类设置为我自己的自定义类MyTabBarController,它是UITabBarController 的子类。

现在我希望能够从 MyTabBarController 类访问故事板上已经存在的 4 个表视图控制器,这样我就可以将数据从一个传递到另一个。我不知道如何从这一点访问它们,我所知道的只是@property (nonatomic, strong) MyTableViewController *tvc; 然后合成它,但这会创建一个新的MyTableViewController 对象并且不会链接到故事板上已经存在的对象。

我希望这是有道理的,感谢您的帮助。

【问题讨论】:

    标签: ios xcode uitabbarcontroller storyboard segue


    【解决方案1】:

    你从UITabBarController继承了这个属性:

    @property(nonatomic, copy) NSArray *viewControllers
    

    您应该能够访问它的内容并确定它知道哪些视图控制器。

    【讨论】:

    • 感谢菲利普。所以我插入了该属性并合成了它,现在第一个 TableViewController 不再自动加载,它只是一个黑屏,直到我单击一个选项卡。另外,当我 NSLog(@"%i", [viewControllers count]); 得到 0 时,我做错了什么?
    • 您不必这样做。正如我所说,当您继承 UITabBarController 的子类时已经存在的属性。如果您删除您的财产,那么NSLog(@"%i", [self.viewControllers count]); 应该可以工作。
    • 啊,我明白了,感谢您澄清这一点,现在我知道检查超类是否有我需要的任何属性。谢谢
    • 最后一件事,我有点困惑如何访问其中一个视图控制器的属性,我不太确定正确的语法。我目前正在做的是[[self.viewControllers objectAtIndex:1] setMyInt:1];,但是当加载特定的 viewController 时,myInt 值为 0。你能帮忙吗?
    • 不确定“viewController 加载”是什么意思。如果它在viewControllers 数组中,它一定已经被加载了……也许你把事件的顺序颠倒了? (另一件事是使用NSLog(@"%@", self.viewControllers); 来确保数组有你认为它有的对象。)
    猜你喜欢
    • 2013-10-14
    • 2021-12-30
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 2012-01-29
    相关资源
    最近更新 更多