【问题标题】:How can I programmatically change the view controller displayed by a tab bar item?如何以编程方式更改标签栏项目显示的视图控制器?
【发布时间】:2014-01-28 12:31:09
【问题描述】:

我有一个带有标签栏控制器的 iOS 应用程序,它是使用情节提要创建的。其中一个标签栏按钮连接到表格视图控制器(通过导航控制器),该控制器显示用户选择的“最喜欢的”项目列表。但是,如果该项目列表为空,我想显示一个带有简单静态消息的不同视图控制器。是否可以以编程方式更改选项卡栏按钮/segue 的“目标”视图控制器?如果是这样,怎么做?还是有更好的选择来实现这一目标?谢谢!

【问题讨论】:

  • 如果表计数为零,为什么不使用 UIView 并在 tableview 的 superView 中添加视图

标签: ios objective-c xcode


【解决方案1】:

不要用 tabBar 索引处理这个。

更适合你的场景,试试这个:

ViewDidLoad 中,检查 favourite items

 if(empty ){
   //hide the tableView(tableView =nil ) && Show the Static Message.
}else{
   // Hide the static Message && initiate the tableView
}

【讨论】:

  • 这看起来很可能!我尝试了类似的方法,但我没有隐藏默认的 tableView,所以它不能正常工作。会试一试并报告。
  • 不要使用 UITableViewController,而是使用具有“空视图”和 UITableView 的自定义 UIViewController。理想情况下,使用可以调用的方法从 viewDidLoad 中更新 UI,您在添加第一个收藏夹时也会调用该方法。
  • 最后,如果收藏夹列表为空,我在收藏夹列表 TableViewController 的 ViewDidLoad 方法中创建了一个自动切换到“如果为空则显示”ViewController。似乎是节省重新构建列表部分的最简单选择。
【解决方案2】:

太简单了

[self.tabBarController setSelectedIndex:i];

i - 您要重定向的标签编号的索引。

【讨论】:

    猜你喜欢
    • 2022-11-14
    • 1970-01-01
    • 2017-01-14
    • 2020-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多