2014-12-10 4 views
0

각기 다른 제목의 4 페이지로 구성된 UIPageViewController가 있습니다. 또한 제목이 무엇인지에 따라 숨길 수 있기를 원하는 pageContentViewController에 UITextField가 있습니다. 나는이있어 :스위프트 숨기기 UITextField

class pageContentViewController: UIViewController, UITextFieldDelegate { 

    @IBOutlet var titleLabel: UILabel! 
    @IBOutlet var textEntry: UITextField! 

    var pageIndex: Int = 0 
    var titleText = "default" 

    override func viewDidLoad() { 
    super.viewDidLoad() 

    textEntry.delegate = self 
    self.textEntry = UITextField() 
    self.titleLabel.text = self.titleText 

    if self.titleText != "Enter Name" { 
    self.textEntry.hidden = true 
    } 
} 

제목 텍스트가 다른 곳에 설정하고, 가장 확실히 예상대로 표시되지만 텍스트 필드가 사라지지 않는있다. if 문을 titleText가 설정된 동일한 위치에 두려고했지만 거기에서도 작동하지 않습니다.

답변

0

이 문제는 위임자를 설정하는 데 있습니다.

그것은 당신의 텍스트 필드에 연결되어 있는지 확인이

@IBOutlet var txtTest : UITextField = nil 

같은 텍스트 필드에 대한 함께 IBOutlet을 만들 다음이

class ViewController: UIViewController,UITextFieldDelegate { 

처럼의 ViewController에 텍스트 필드 대리자를 설정하세요 스토리 보드에서보기.

마침내

txtTest.delegate=self 

우리는 거의 완료를 사용하여 대리자를 설정합니다. 이제이 델리게이트 함수를 클래스에 배치하십시오.

func textFieldShouldReturn(textField: UITextField!) -> Bool // called when 'return' key pressed. return NO to ignore. 
    { 
     textField.resignFirstResponder() 
     return true; 
    } 

희망 사항은 문제를 해결할 것입니다.

+0

IBOutlet 변수를 nil로 설정하는 것을 제외하고는 모든 방법을 설정 했으므로 오류 호스트 전체를 도입하지 않으면 실제로 그 작업을 수행 할 수 없습니다. – lunadiviner