2017-03-16 117 views
2

我在使用Swift 3構建iOS應用程序,當我點擊UITextField選擇項目時,顯示UITableView作爲子視圖。當我選擇的項目,我在table​View(_: did​Select​Row​At:​)功能SubView只顯示第一次

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

在此之後執行該代碼當我點擊UITextField再次,子視圖再次顯示出來。

要顯示的子視圖,我寫了這個代碼viewDidLoad()功能

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

如何再次顯示子視圖?

+0

隱藏它呢? – Larme

+0

謝謝大家回答我的問題。我意識到我只是沒有添加 self.textFieldChoosCountry.resignFirstResponder()在我的表視圖(_:做選擇行在:) function –

回答

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

您可以使用下面的代碼片段在createActionSheet()功能

self.view.addSubview(UIView) 

快樂編碼添加子視圖。

1

只需hide/showtableView因爲如果你從超級視圖中刪除它,那麼你需要添加它也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,頁腳單元格所有這些將被隱藏。 –