如何在XCode中将@IBAction和@IBOutlet与多个视图控制器一起使用

时间:2017-09-18 23:43:22

标签: ios swift

我遇到了Xcode的问题。我正在制作测试应用程序,并且我有多个视图控制器与标签栏控制器连接。对于每个视图控制器,我显然有一个类。我使用control-drag添加@ IBOutlet / @ IBAction。有用。问题是当我运行它时,它没有编译。我猜它是因为视图还没有加载。这是代码。

class MyViewController1: UIViewController, UITextFieldDelegate{
    @IBOutlet weak var myLabel: UILabel!
    @IBOutlet weak var myInput: UITextField!

    override func viewDidLoad(){
        super.viewDidLoad()
        myInput.delegate = self
    }

    @IBAction func myButtonFunc(_ sender: UIButton){
        myLabel.text = "The function worked!"
    }
}

每当我运行此应用程序时,它都会在AppDelegate中出现某种错误。如果有人可以提供帮助,那就太好了。我是Swift / Xcode的新手。 Swift的语法与C ++ / C完全不同!

1 个答案:

答案 0 :(得分:0)

我可以看到给出的代码唯一的问题是myLabel IBoutlet是nil。确保在界面构建器中将IBOutlet连接到Label。希望这有帮助。此外,要调试错误以便您可以看到该行而不是AppDelegate,请按照以下步骤操作:

选择断点导航器:

step 1

然后,点击底部的+,然后选择Exception Breakpoint...

step 2

您现在应该有一个标题为All Exceptions的断点。再次运行代码,它将显示错误所在的行。很可能是IBOutlet没有连接的问题。

希望这有帮助