当我按iPhone主页按钮,睡眠/电源按钮或终止我的应用程序,并再次重新运行时,TestButtonAction不打印

时间:2018-04-25 11:23:25

标签: ios swift xcode

我制作了一个简单的代码来澄清我的问题。当我在我的iPhone上运行我的应用程序时,它可以正常工作,但当我按下主页按钮 - 在模拟器或我的真实iPhone上 - 再次按下应用程序图标时,应用程序运行,但应用程序的按钮“TestButtonAction不起作用。相同当我按下电源/睡眠按钮并再次打开时出现问题。 同样的问题,当我双击主页按钮并通过滑动窗口终止我的应用程序,并再次重新运行按钮不起作用或在控制台中打印“右图” 这是我的代码,谢谢。

//
//  ViewController.swift
//  TestingHomeButton
//
//  Created by Samuel Oncy on 4/25/18.
//  Copyright © 2018 Samuel Oncy. All rights reserved.
//

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var TestButtonOutlet: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func TestButtonAction(_ sender: UIButton) {
        if(TestButtonOutlet.imageView?.image == UIImage(named:"NatureView")){
                    print("Right Image")
        }
    }
}

2 个答案:

答案 0 :(得分:4)

简单地使UIImage全局变量,如果要在If中进行比较。

其他方式也可以解决同样的问题 - 标签是正确的。

import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var TestButtonOutlet: UIButton!
    var image = UIImage (named: "NatureView")

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func TestButtonAction(_ sender: UIButton) {

       // print(TestButtonOutlet.imageView?.image == UIImage(named:"NatureView"))
        if (TestButtonOutlet.currentImage == image) {
            print(TestButtonOutlet.currentImage)
        }
    }
}

答案 1 :(得分:0)

要检查按钮的当前图像,请使用currentImage属性,如下所示: -

@IBAction func TestButtonAction(_ sender: UIButton) {
    if sender.currentImage.isEqual(UIImage(named: "NatureView")) {
        print("Right Image")
    }
}