2017-01-18 65 views
-5

我是新來的swift,所以想問,如何從一個視圖控制器移動到另一個沒有按鈕,但與標籤。例如,如果標籤是「bluhbluh」,那麼它會移動到第二個視圖控制器。謝謝!從一個視圖控制器移動到另一個視圖控制器沒有按鈕

+2

您可以爲標籤的文本設置觀察者,並且如果文本與您正在查找的內容匹配,觀察者將調用執行segue的操作。 http://stackoverflow.com/a/28395000/4475605 – Adrian

+0

您可以在Interface Builder中將一個標識符從一個視圖控制器創建到另一個視圖控制器。然後,在你的代碼中,你應該創建一個條件,例如viewDidLoad,檢查標籤text =「bluhbluh」,這是真的,你用標識符執行該segue。 無論如何,這將有助於看到你想要達到什麼,因爲在場景之間進行過渡的標籤聽起來很奇怪,至少對我而言,如果用戶在文本字段上點擊某些內容,而轉換到其他標籤會更有意義的標籤條件。但那是因爲我不知道你想要什麼。 –

+0

@Adrian他正在談論一個標籤......我也認爲文本字段更有意義,但那就是他所要求的。 –

回答

1

正如其他人所說,這可能不是一個好的模式。但要回答你的問題,你可以嘗試這樣的事情。

import UIKit 

class FirstViewController: UIViewController { 

    @IBOutlet weak var label: UILabel! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     label.addObserver(self, 
          forKeyPath: "text", 
          options: [.new, .old], 
          context: nil) 
    } 

    override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) { 
     if keyPath == "text" { 
      if label.text == "Text that triggers navigation" { 
       let secondVC = SecondViewController() 
       navigationController?.pushViewController(secondVC, animated: true) 
      } 
     } 
    } 

} 

class SecondViewController: UIViewController {} 
相關問題