我的问题是,当按下按钮拨打电话时,我的按钮会动画(将手机图像旋转90度)。
但是在电话结束并且我的视图重新出现之后,我希望我的按钮重置为默认状态,但我不知道确切地调用代码的位置。
从我看来,当我的视图重新出现时,会调用viewDidLayoutSubviews/viewWillLayoutSubviews
这是调用我的代码的好地方吗?从我看到他们两个被称为两次。还有其他地方可以做到这一点吗?
答案 0 :(得分:1)
viewDidLayoutSubviews/viewWillLayoutSubviews
被多次调用,根据按钮的状态改变,是的,这将是一个很好的地方。
答案 1 :(得分:0)
applicationDidBecomeActive(application: UIApplication)
。
如果您的通话功能如下所示:
func call() {
guard let url = NSURL(string: "tel://001234567890") else {
return
}
let application:UIApplication = UIApplication.sharedApplication()
if (application.canOpenURL(url)) {
application.openURL(url)
}
}
您希望在通话结束时执行某些操作,您可以使用App Delegate
中的功能:applicationDidBecomeActive(application: UIApplication)
我的重置看起来像这样:
guard let window = UIApplication.sharedApplication().windows.first, let tabBar = window.rootViewController as? UITabBarController else {
return
}
tabBar.selectedIndex = 0
这基本上将TabBar项目变成了一个Call按钮。