【问题标题】:Is there a method that gets called on tab bar switch?有没有在标签栏开关上调用的方法?
【发布时间】:2018-10-08 18:08:40
【问题描述】:

我正在构建一个 iOS 应用程序。这个应用程序有这样的结构:

tab bar item > box-view > navigation controller > table view
tab bar item > navigation controller > view

第一个表格视图有一个 downPicker(一个开源下拉菜单)。 你可以用一个数组初始化一个 downPicker 来给他显示的元素。

不幸的是,我的第二个视图有一个添加按钮,您可以在此下拉选择器中添加一个元素。

问题是,如果我打开表格视图,切换到视图,添加元素,切换回表格视图(下拉选择器所在的位置),这些值不会更新。

如果我在添加元素后返回框视图,则不会出现此问题。

目前 downPicker init 在 vi​​ewWillLoad 中。那么,有没有办法检测到选项卡之间的这种切换并实际刷新 downPicker?

【问题讨论】:

  • @arturdev 这是基本的事情之一,如果你已经阅读了UITabBarDelegate 的苹果文档,你就不会错过。在问一些琐碎的问题之前,请在互联网上进行彻底的研究。谢谢!
  • 嗯,伙计,你为什么还要费心回答一个已解决的问题?

标签: ios objective-c


【解决方案1】:

创建一个继承自 UITabBarController 的类并重写以下方法:

//Swift
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    //do your job here
}

//ObjC
- (void)tabBar:(UITabBar *)tabBar didSelectItem:(UITabBarItem *)item {
    //do your job here        
}

然后将类设置为情节提要中的 TabBarController。

【讨论】:

  • 我使用 obj-c 而不是 swift 我的伙计
  • 然后呢? :) 你不能用 Objective-C 做同样的事情吗? :)
  • 谢谢,我会调查的!
  • 但是无论如何,如果你没有做任何“坏”的事情,那么每次在标签之间切换时都应该调用 viewWillAppear: 方法。
  • 我注意到我使用了错误的方法命名。我的错。有一些问题,这是我的第一个大项目,所以我有点困惑。谢谢。
猜你喜欢
  • 1970-01-01
  • 2016-11-23
  • 2013-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-12
  • 1970-01-01
  • 2015-06-05
相关资源
最近更新 更多