2017-10-28 9 views
0

오늘 내 앱의 간단한 페이지를 만들었습니다. 그리고 이제 그것을 확장하고 싶습니다.이름을 삽입 한 후 새 페이지를 표시하는 방법?

import UIKit 

class ViewController: UIViewController { 

    @IBOutlet weak var myLabel: UILabel! 
    @IBOutlet weak var myTextField: UITextField! 
    @IBOutlet weak var display: UILabel! 
    @IBAction func myButtonPressed(_ sender: Any) { 
     display.text = "Hi \(myTextField.text!)! What can I do for you 
today?" 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 
} 

사용자가 이름을 입력 한 후 앱에 새 페이지를 표시하길 원합니다.

+0

그렇게 많은 방법이있다, 당신은 약간의 인터넷 검색에 대한 답을 찾을 수 있습니다. – Mina

+0

대부분의 방법으로 여러 개의보기 페이지가 작성됩니다. 그리고 사용자는 단추를 수동으로 클릭하여 다음 페이지로 진행해야합니다. 사용자가 텍스트 필드에 자신의 이름을 입력 한 후 페이지가 자동으로 팝업되기를 원합니다. –

+0

http://www.techotopia.com/index.php/Using_Storyboards_in_Xcode_6 요구 사항에 맞는 완벽한 자습서입니다. –

답변

0

당신은 UITextViewDelegate 준수와 같은 func textViewDidEndEditing(_ textView: UITextView)에서의 ViewController을 제시 할 수 있습니다 :

extension ViewController: UITextFieldDelegate { 
    func textViewDidEndEditing(_ textView: UITextView) { 
    self.present(/*the targeted view controller*/) 
    } 
} 
+0

나는 그게 무슨 뜻인지 전혀 모르겠다. 그러나 코드를 모든 곳에 연결하여 어떤 일이 발생하는지 살펴 보겠습니다. 감사. –

+0

사용자가 텍스트 필드에 이름을 입력합니다. textField의 델리게이트가 뷰 컨트롤러이고 사용자가 편집을 마친 경우 (텍스트 필드에 텍스트를 입력하는 작업도 포함)이 메서드가 호출됩니다. '편집 완료'란 사용자가 텍스트 필드에서 포커스를 제거한다는 의미입니다. 그러나 여전히 사용자가 실제로 완료되었는지 확신 할 수 없으므로 '제출'버튼을 사용하는 것이 더 안전합니다. –

0

추가 할 수있는 대상

// viewDidLoad에

에서
myTextField.addTarget(self, action: #selector(onNameChange(sender:)), for: .editingChanged) 

// 값 변화에

같은

@objc func onNameChange(sender:UITextField) { 
     // Do something 
    } 
0

지금까지 귀하의 질의를 다음과 같이 받았습니다.

사용자가 텍스트 필드에 이름을 입력하면 새 ViewController로 이동하려고합니다.

내가 특성의 경위 '텍스트 입력이 섹션 특성을 도입'안에 당신이 바로 그 반환 키 값으로 "GO"(또는 옵션에서 원하는 것)을 선택 얻었다합니다.

그리고 지금은 UITextFieldDelegate를 구현하여 뷰 컨트롤러 클래스에이 코드를 추가

func textFieldShouldReturn(_ textField: UITextField) -> Bool // called when 'return' key pressed. return false to ignore. 
{ 
    print(textField.tag) 
    if (textField.text?.isEmpty)! { 
     //show alert that text field is empty 
     return false 
    } 
    /* as per your case we have only one textfield, 
     So there no need of switch case and you can 
     directly present your next vc from here without having any button on UI */ 

    return false 
}