2014-09-20 74 views
1

我有一個標籤欄控制器作爲我的應用程序的起點,其中一個選項卡和隨後發生的事情僅適用於管理員。所以我是密碼保護選項卡。我想在我的視圖控制器(其中的方式是UITableViewController)的viewDidLoad功能加入少許多種形式對話中,防止加載或出現視圖

想我可以得到用戶在對話框中的變量inputTextField輸入的文本。

代碼從viewDidLoad()的相關章節:

if inputTextField?.text != "secret" { 
    return 
} 
super.viewDidLoad() 

但它不工作。任何暗示讚賞。對不起,如果它太基本了,我完全不熟悉iOS和Swift編程,所以請原諒我的無知人。

+0

定義「它不起作用」。它沒有出現?它不接受密碼?它接受任何密碼?密碼檢查應該在'viewWillLoad()'而不是'viewDidLoad()'中,這樣如果密碼錯誤,控制器可以被中止。 – NRitH 2014-09-20 04:27:25

+0

通過「它不起作用」,即使輸入的密碼不匹配,我的意思也是顯示視圖。我試圖使用viewWillLoad(),但UITableViewController沒有方法viewWillLoad()。 – 2014-09-20 05:12:36

回答

1

這是一個簡單的例子。很多方面。我在第一個標籤的VC中的Storyboard中放置了兩個UIViews。在後面的一個我給了一個黑暗的顏色來模擬隱藏的祕密視圖(secretView)。在頂部視圖(entryView)中,我拖動了一個標籤「輸入密碼」和一個文本字段(passCode)。我只是隱藏了後視圖,除非密碼是正確的。

import UIKit 

class FirstViewController: UIViewController, UITextFieldDelegate { 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.passCode.delegate = self 
     entryView.hidden = false 
     secretView.hidden = true 
    } 


    @IBOutlet weak var entryView: UIView! 
    @IBOutlet weak var secretView: UIView! 
    let secretCode = "X" 

    @IBOutlet weak var passCode: UITextField! 


    func textFieldShouldReturn(textField: UITextField!) -> Bool { 

     if textField.text == secretCode { 

      entryView.hidden = true 
      secretView.hidden = false 

     } else { 

      self.passCode.text = "Try Again!" 
     } 

     textField.resignFirstResponder() 
     return true 
    } 
} 
+0

我試圖通過拖動2個UIViews到一個退出的VC,它的工作。非常感謝。是否有可能爲2個不同的VC做到這一點。這並沒有將2個觀點放入同一個VC。我也通過製作tabbarcontoller子類並希望在shouldSelectViewController中捕獲tab按鈕來解決問題。但到目前爲止沒有運氣。 – 2014-09-24 01:07:34

+0

絕對!一種方法是在正確答案後繼續使用另一個視圖控制器。讓我知道你是否需要幫助代碼。 – 2014-09-24 01:12:15