2010-06-04 38 views
0

新手可可觸摸問題:添加UIPickerViews的觀點與其他元素

我的目標有一個UIPickerView和一個UIButton的接口。

選取器需要一個委託和數據源,我最初編寫爲一個單獨的PickerController類來實現正確的協議。但是,我現在不確定如何使用界面生成器來鏈接所有東西。

如果我有一個單獨的PickerController(只有一個UIPickerView)的.xib文件,並將PickerController視圖添加爲主控制器中的子視圖,則UIPickerView會正確顯示,但UIButton主.xib文件)不是。就好像添加PickerController視圖佔據了整個窗口並遮住了主視圖。

我試圖擺脫單獨的.xib文件,而是直接將UIPickerView添加到主.xib文件中。但是,通過這種配置,我不確定如何設置委託和數據源,因爲文件的所有者(主控制器)與我寫的類(PickerController)不同。

一些幫助,下面將是巨大的:

  • 我應該有每UIPickerView一個單獨的類?
  • 我應該有一個單獨的.xib文件per-UIPickerView?
  • 如果委託和數據源與文件的所有者位於不同的類中,我該如何連接它們?
  • 我可以添加一個子視圖到主視圖,而不會干擾/遮蔽主視圖中的元素?

回答

1

它可以做你想做的事,但它可以在達到理想結果的最快路徑之外。如果你是一個新手,我會堅持現在的簡單路徑,因爲可可觸摸已經足夠了一條學習曲線。

所以。最快的路徑是讓你的主視圖繼承PickerController類。然後,您可以創建IB文件,使用主視圖類作爲文件的所有者,並連接數據源和委託。

我從你的StackOverflow得分猜測你是一個有經驗的開發人員誰開始iPhone開發。上述最快的方法可能會讓人感到有趣,因爲子類化並不真正感覺正確。感覺就像你應該能夠結合控制器,將它們混合在一起構建UI。這是可能的,但如果你剛剛開始,最終會有很多工作和一些頭痛的問題。我發現在大多數情況下,做一個更加優雅的方法的審美收益是不值得的。

+0

感謝那個克里斯 - 高興地採取醜惡的路線,讓事情開始迅速:) 我正在玩這個選項(甚至在主控制器內嵌代碼),但我認爲它不可能是正確的方式,因爲沒有辦法包含兩個獨立的UIPickerViews。 儘管如此,我現在會忽略那座橋,並在我到達它時穿過它。乾杯! – 2010-06-04 12:41:19

+0

我建議不要把兩個選擇器視圖放在一個屏幕上。一個選取器視圖佔用一半的屏幕。相反,你可以分成兩個單獨的屏幕,或者你可以有一個動作表單式的用戶界面,你可以點擊一個對象,並在需要做出選擇時調出一個選擇器視圖。 (如在Safari中)。如果你這樣做,那麼你可以在一個.xib文件中同時擁有兩個選擇器視圖。 – 2010-06-04 20:28:14