ios - UITabBarController setSelectedViewController 在标签栏 Controller 的 View Controller 列表中只能选择一个 View Controller

标签 ios objective-c uitabbarcontroller

我有一个 UITableViewController,例如 NewsfeedController 并具有用于设置/获取的综合属性。

NewsfeedController* vc = [[NewsfeedController alloc] init];
vc.tagId = 10;
[self.tabBarController setSelectedViewController:vc];

显示错误: [UITabBarController setSelectedViewController:] 只能选择选项卡栏 Controller 的 View Controller 列表中的 View Controller 。'

我在 UITabBarController setSelectedViewController: only a view controller in the tab bar controller's list of view controllers can be selected 中看到,它说“删除您传递的 View Controller 数组的合成”。

你能给出完整的代码如何实现吗?我需要的是,我想切换到其他选项卡并传递变量,以便在 NewsfeedController 中可以使用变量。如果我使用 [self.tabBarController setSelectedIndex:0] 它可以更改选项卡,但我如何传递变量并触发刷新/重新初始化 View ?

如果可能,如果使用 setSelectedViewController,它是否可以更改为未在所有选项卡 Controller 项目中列出的 View 。 (例如,在 UITab 中,选项卡是:tab1、tab2、tab3。但我想更改为 tab4)。

最佳答案

您需要获取对标签栏 Controller 中已有的 NewsFeedController 的引用,而不是创建新实例(这是您对发布的代码所做的)。您可以从选项卡栏 Controller 的 viewControllers 属性中获取该引用。因此,例如,如果 NewsFeedController 在第二个选项卡(索引 1 处的选项卡)中,您可以这样做,

NewsfeedController* vc = self.tabBarController.viewControllers[1];

关于ios - UITabBarController setSelectedViewController 在标签栏 Controller 的 View Controller 列表中只能选择一个 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30696886/

相关文章:

ios - 在 SpriteKit 和 Swift 中关闭 SKScene

objective-c - iOS 6 - 在没有 Default-568h@2x.png 的情况下处理 iPhone 5 屏幕尺寸

iphone - NSMutableArray比较不同计数

ios - Sprite Kit 销接头似乎有一个不正确的 anchor

javascript - Nativescript 从原生图像中获取 base64 数据

ios - 将插页式广告添加到 chartboost

Swift:带有中心圆形按钮的自定义 TabBar

iphone - UITabBarViewController 崩溃

ios - 自动布局和UITableView : how to adjust for Tabbar?

ios - 如何在不忙等待的情况下检查委托(delegate)类中的 "readerDidFinish"方法?