2011-12-26 80 views
2

簡單的問題:我正在創建一個iOS應用程序,並且視圖控制器計算它應該傳遞給視圖的一些座標。我正在使用UIView的drawRect方法,所以我的問題是我應該如何發送數據到視圖?我知道委託人和NSNotificationCenter,但我覺得應該有一個更簡單的方法,因爲這是模型視圖控制器的一部分。如果沒有,那就沒問題,我只是想知道。謝謝!鏈接UIView和UIViewController的最佳方式

回答

2

我會在UIView中聲明屬性,並在需要更改任何內容時更改UIViewController的值。

+0

謝謝!我知道會有一個更簡單的方法。但是,另一個問題是如何設置UIViewController的值?我有一個連接到視圖的UIView的子類,但調用'[self.view doSomething]'返回一個錯誤。我應該創建一個UIView的實例並設置它的值嗎?或者我應該說'self.view = instanceOfUIView'? – omh1280 2011-12-27 01:46:17

+0

由'UIViewController'提供的默認'view'屬性無法向它添加新的屬性。您需要在您的屬性中使用UIView的子類實例,並將該實例作爲子視圖添加到UIViewController實例的默認視圖。 '[self.view addSubview:instanceOfUIView];' – petershine 2011-12-27 05:22:02

+0

@Peter的方法肯定有效。但我不確定你遇到了什麼樣的錯誤。如果self.view已經是UIView子類的一個實例,並且子類有一個名爲「doSomething」的方法,那麼[(SubClassName *)self.view doSomething]當然可以工作。這是你試過的嗎?你看到的錯誤是什麼? – barley 2011-12-27 05:41:45

0

用戶在您的UIView子類中的屬性或方法。如果您的更改需要手動重繪視圖,請確保在某個時刻調用[self setNeedsDisplay]。

委託人或NSNotificaitonCenter在這種情況下肯定是矯枉過正。由於UIViewController大概會保留一個指向UIView的指針,因此直接與視圖進行交互要簡單得多。

相關問題