2011-06-11 128 views
1

我想開發一個應用程序來聽到的iPod音樂(類似於AddMusic例子)。我有一個自定義視圖的ViewController,它有一些圖形和按鈕來管理音樂播放。使用導航控制器,我可以從iPod音樂中選擇一個列表並將其顯示爲UITable(如AddMusic)。的UIView和模型 - 視圖 - 控制器(MVC)模式

現在我要所有的方法程序來管理音樂列表播放,停止,IsPlaying模塊,持續時間等

我的問題是:

爲了遵循模型視圖控制器模式在主視圖控制器或視圖中,我有與用戶交互的按鈕,哪裏是編程所有不是視圖的方法(管理音樂)的最佳位置?

我想答案應該是主要的ViewController但在這種情況下,我怎麼能訪問該從那裏我有用戶界面按鈕,我管理的一些圖形視圖的方法呢?因爲UIView沒有像'parentViewController'這樣的東西。

非常感謝。

Kanick

回答

0

你可以聲明繼承正是主視圖控制器的類。在第二個視圖控制器中,您可以創建該類的一個實例。最終,該對象將在主視圖控制器中提供所有的信息。

+0

三江源@Mikayil,我已經試過你的想法。我真的沒有兩個視圖控制器。我有1 viewController(我的mainViewControler)和一個視圖(即[mainViewController setView:myView])。無論如何,我做了你建議我宣佈一個新的類 - > @interface inheritsFromMyMainViewController:myMainViewController {}。好吧,我可以訪問myMainViewController的方法,但不能訪問它的ivars(也許我犯了錯誤),因爲(id)sender是myView,另一點是我需要處理currentTime以移動圖形。我是對的? – Kanick 2011-06-11 10:57:47

+0

達到對象ivars的慣例是@property。如果你既沒有爲ivars聲明屬性,也沒有getter和/或setter方法,你無法訪問它們。所以請確保您使用任何一種方式。我當然建議使用@property方式,因爲它可以使用點語法。但我不明白currentTime和移動圖形的東西之間的關係。 – 2011-06-11 11:12:58