2017-03-16 5 views
2

Swift 3を使用してiOSアプリケーションを構築しています。UITextFieldをクリックするとサブビューとしてUITableViewが表示されます。私は項目を選択すると、私は再び、サブビューを再び見せているUITextFieldをクリックしたときに、私はこの後table​View(_: did​Select​Row​At:​)機能サブビューのみ初めて表示する

self.view.viewWithTag(104)?.removeFromSuperview() 

にこのコードを実行します。サブビューを表示するには

、私は再びサブビューを表示するにはどうすればよい

self.textFieldGetCountry.addTarget(self, action: #selector(self.createActionSheet), for: UIControlEvents.editingDidBegin) 

viewDidLoad()機能で、このコードを書かれていますか?

+0

ではなく、それを隠しますか? – Larme

+0

私の質問にお答えいただき、ありがとうございます。私はちょうど私のテーブルのビュー内の self.textFieldChoosCountry.resignFirstResponder()を追加していないことを理解します –

答えて

1

は、このアプローチを試してみてください:

/* Create a lazy property */ 
lazy var customView: UIView = { 
    let view = // init your view 
    /* configuration (frame, color etc.)... */ 
    return view 
}() 


override func viewDidLoad() { 
    super.viewDidLoad() 

    /* Add your subview to viewControllers view */ 
    self.view.addSubview(customView) 
} 


/* Make a function that regulates your view's hide/unhide propery or alpha */ 
func showCustomView(show: Bool) { 
    customView.alpha = show ? 1.0 : 0.0 
    /* alternative */ 
    // customView.isHidden = !show 
} 
0

あなたは

self.view.addSubview(UIView) 

コーディングハッピーcreateActionSheet()機能で、次のコードスニペットを使用してサブビューを追加することができます。

1

tableViewスーパービューから削除すると、textFieldが最初のレスポンダになったときに追加する必要があります。

//Show the tableView in createActionSheet 
func createActionSheet() { 
    self.view.viewWithTag(104)?.isHidden = false 
} 

//Hide the tableView didSelectRow 
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 
    tableView.isHidden = true 
} 

それはあなたがtableViewIBOutletを作成した場合ので、それにアクセスすることは容易であるバッターです。

+0

私はisHiddenを使用するとテーブルビューの項目を非表示にします全体のテーブルビュー。 –

+0

@MituVinciあなたが議論している問題のスクリーンショットを表示できますか?なぜなら、tableViewを非表示にすると、sectionHeader、footer cellなどのすべての要素が非表示になるためです。 –

関連する問題