Swift 3:UITabBarController更改标签展开
问题描述:
我有UITabBarController。从首页标签,我seged到ThankYouVC。Swift 3:UITabBarController更改标签展开
当我从ThankYouVC放松时,我想更改选定的选项卡。
我已经试过:
HomeVC
@IBAction func unwindToMain(segue:UIStoryboardSegue) {
print("unwind")
self.tabBarController?.selectedIndex = 0
}
控制台日志打印开卷,但不改变的指数。
的另一种尝试:
enum Notifications: String, NotificationName {
case QRDoneNotification
}
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(unwindCallBack), name: Notification.Name("QRDoneNotification"), object: nil)
}
@IBAction func unwindToMain(segue:UIStoryboardSegue) {
print("unwind")
NotificationCenter.default.post(name: Notifications.QRDoneNotification.name, object: nil)
}
func unwindCallBack() {
self.tabBarController?.selectedIndex = 0
}
仍然没有运气!
帮帮我。
答
问题是,一个unwind segue
展开到保存该功能的视图控制器。所以这就是你最终的目标。
一个解决方案:子类UITabBarController
并把你放松在那里。
class MyTabBarController: UITabBarController {
@IBAction func unwindToMain(segue:UIStoryboardSegue) {
print("Unwinding from custom tab bar controller...")
selectedIndex = 1
}
}
所以,那类添加到您的项目......将您目前的UITabBarController的自定义类来MyTabBarController
......将您的退出/ SEGUE放松对这个新的,不要忘记删除现有的unwindToMain()
函数和展开连接。
你怎么接近你的'ThankYouVC'?这是一种模式“现在”的赛格吗?您的TabBarController是否位于NavigationController中,并且您正在将TabBar推向'ThankYouVC'? – DonMag
我认为你的self.tabBarController是零,这就是你的问题的原因。检查这个 –
@DonMag我使用Show(例如Push)segue继续致谢ThankYouVC。不,TabBar不在导航控制器内。 –