【问题标题】:Accessing a tabBarController from a class that didn't create it?从没有创建它的类访问 tabBarController?
【发布时间】:2011-04-11 05:06:51
【问题描述】:

我正在开发一个 iPhone 应用程序,其中最终用户看到的第一件事是带有五个 UIButton 的“主”屏幕。在点击这些按钮中的任何一个时,它们会被带到一个标签栏控制器视图,底部有五个标签,对应于(现在)上一个主屏幕上的每个 UIButton。

我目前正在我的 App Delegate 中创建我的标签栏控制器,并在同一位置加载主视图控制器。

但我无法让主视图控制器中的 UIButtons 工作。我这样称呼不同的标签:

- (void) homeBtnSelect:(UIButton *)button {
    if (button == button1) {
    self.tabBarController.selectedIndex = 0;
    }
    if (button == button2) {
        self.tabBarController.selectedIndex = 1;
    }
    //etc etc...
}

我假设我需要将 tabBarController 加载到主视图控制器中。但我不知道该怎么做。有人可以帮忙吗?

如果需要,我可以提供更多代码。提前致谢!

【问题讨论】:

  • homeBtnSelect:被叫了吗?
  • 您是否为 tabBarController 实现了委托......当您更改 tabBarController.selectedIndex 时,您需要自己处理委托......您正在做的任何其他事情来改变标签?
  • 没有。不过,“处理委托”是什么意思?
  • homeBtnSelect 确实被调用了。我已经用 NSLog 进行了测试。 :)
  • @property(nonatomic, assign) UIViewController *selectedViewController.....设置这个viewController.....而不是设置selectedIndex.....

标签: iphone objective-c uitabbarcontroller


【解决方案1】:

为了选择特定的viewController,您必须设置selectedViewController 属性.....您可以通过从tabBarController.viewControllers 数组中获取视图控制器......然后设置selectedViewController 属性来做到这一点。 .....

【讨论】:

    猜你喜欢
    • 2019-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-11
    • 1970-01-01
    • 2022-12-15
    相关资源
    最近更新 更多