【问题标题】:TabBar selectedindex button within navigation View导航视图中的 TabBar selectedindex 按钮
【发布时间】:2012-05-10 08:45:10
【问题描述】:

我有一个带有 tabBar 的应用程序,我想使用被调用的 UIViewControllers 上的按钮来设置选定的索引。

tabBar 是在情节提要中创建的,所以我的层次结构如下所示:

mainTabBarController Scene
  First Reponder
  mainTabBarController
    mainTabBar
  multiple relationships for the proper ViewControllers

想法是这样的:

标签 A              标签 B              标签 C             标签 D
| | | |
navCon1         navCon2        navCon3         navCon4

我想要一个按钮(如 1-4 所示,已经正确调用)导航控制器,它将使用按钮将父 TabBarController 的 selectedIndex 设置为 A B C 或 D。我尝试务实地添加按钮,但我不明白如何引用 tabBarBontroller 以强制更改所选索引:

这很好用,因为我有一个名为 refreshPage 的函数

UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc]
                              initWithMarButtonStyleItem:UIBarButtonSystemItemRefresh target:self;
                              action:@selector(refreshPage:)
                              ];

这不起作用,因为我可能不正确地引用父 tabBarController

UIBarButtonItem *backButton = [[UIBarButtonItem alloc]
                              initWithMarButtonStyleItem:UIBarButtonSystemItemCancel target:self;
                              action:[self.tabBarController selectedIndex:1]
                              ];

我给 tabBarController 起了一个名字,并且给了其中的 tabBar .. 但我似乎也不能使用这些名字来引用它们。任何建议将不胜感激。

这只是我遇到的一个问题,因为当我转到另一个选项卡时,我还希望 TabBar 子项默认返回主选项卡(或父视图控制器),这样当我在 TAb A 上并导航到控制器 1 时,或 1a 等,如果我转到选项卡 B,选项卡 A 将自动恢复到其层次结构的顶部......但这是另一个问题 :)

谢谢你, 银虎

【问题讨论】:

    标签: xcode cocoa-touch uitabbarcontroller


    【解决方案1】:

    使用第一种方法并在“refreshPage”方法中调用[self.tabBarController selectedIndex:1]。

    【讨论】:

    • nah .. refreshPage 是一个单独的函数,用于重新加载当前页面......我不想更改该特定函数中的选项卡。我想要一个单独的按钮来选择我指定的选项卡,这就是我将它作为 2 个功能的原因。
    • 抱歉,我没有意识到它们是不同的按钮。但同样的原则仍然适用。制作一个名为“goBack”的函数,在点击按钮时运行。并在该函数中设置选定的标签索引。
    • 如你所见..我认为我创建的第二个按钮 (*backButton) 就是这样做的......但它不起作用。我认为这是因为我错误地引用了标签栏...
    猜你喜欢
    • 2018-06-23
    • 2010-11-15
    • 2021-08-16
    • 2020-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多