在以编程方式拨打电话后重置按钮状态的位置

时间:2015-08-31 12:37:04

标签: ios swift

我的问题是,当按下按钮拨打电话时,我的按钮会动画(将手机图像旋转90度)。

但是在电话结束并且我的视图重新出现之后,我希望我的按钮重置为默认状态,但我不知道确切地调用代码的位置。

从我看来,当我的视图重新出现时,会调用viewDidLayoutSubviews/viewWillLayoutSubviews 这是调用我的代码的好地方吗?从我看到他们两个被称为两次。还有其他地方可以做到这一点吗?

2 个答案:

答案 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按钮。