2

私は2つのビューを持っています。1 つ目は「homeView」、2 つ目は「detailView」です。

homeViewには2つのボタンbutton1 button2があります

私はラベルlabel1に持っています

button1 を押すと、「detailView」に変更され、label1.text は「button 1 gedrückt」に変更されます button2 を押すと、「detailView」に変更され、label1.text は「button 2 gedrückt」に変更されます

コードを使用する場合:

@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!

@IBAction func button1(sender: UIButton) {

    let vc : AnyObject! = self.storyboard!.instantiateViewControllerWithIdentifier("detailview")
    self.showViewController(vc as! UIViewController, sender: vc)


    // self.label1.text = "button 1 gedrückt"

}

ビューは変更されますが、label1.text は変更されません。私が使用する場合

@IBOutlet weak var label1: UILabel!
@IBOutlet weak var label2: UILabel!

@IBAction func button1(sender: UIButton) {

    let vc : AnyObject! = self.storyboard!.instantiateViewControllerWithIdentifier("detailview")
    self.showViewController(vc as! UIViewController, sender: vc)


    self.label1.text = "button 1 gedrückt"

}

エラーが発生します: ここに画像の説明を入力

何ができるかわからない??

4

2 に答える 2

3

ラベルがコンセントに接続されていること、またはラベルが複製されていることを確認してください。問題がなければ、接続を削除してからもう一度接続してみてください。以下の画像は、私が話していることを示しています。

ここに画像の説明を入力

于 2015-09-16T20:48:54.740 に答える
0

ありがとうございます。このコードで label1 のテキストを変更できるようになりました

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
    if (segue.identifier == "segueTest") {
        let svc = segue.destinationViewController as! SecondViewController;

        svc.toPass = label2.text

    }
}

今別の質問ですか?この「オーバーライド関数」を IBAction に入れることはできますか? ボタンを増やしたいので。すべてのボタンで、label1 に別のテキストが必要です。

ありがとう(私はXcodeとSwiftのまったくの初心者です)

于 2015-09-17T17:05:55.483 に答える