2013-08-04 33 views
0

我正在構建一個應用程序,我想在兩個不同的視圖控制器之間共享一個可變的NSArray。在兩個ViewControllers之間共享NSArray數據

之所以這樣,是因爲在其中一個viewcontrollers(主)我需要主動檢查數組的內容,如果某些屬性滿足顯示警報,而另一個視圖控制器(UI)是用戶將一個警報對象設置到所述數組中並管理一個tableview中的警報對象。

所以我的問題是這個數組駐留在我的應用程序委託潛在的位置?

或者我最好讓它駐留在主視圖控制器(主視圖控制器)中,並基本上將它傳遞給第二個UI視圖控制器,並在每次動態填充UItableview,然後將其傳回以更新主數組上?

+1

也許看一看委託設計模式,你應該能夠把它的手藝你案件。 http://enroyed.com/ios/delegation-pattern-in-objective-c-and-writing-custom-delegates/ –

+1

屬性是特定於視圖或模型的狀態嗎?如果它是模型,那麼數據應該駐留在模型類中。如果是視圖,那麼可能會有一個主視圖控制器可以通過委託模式進行更新。 – johnnieb

+0

@OliverAtkinson,感謝您的評論,是的,我對委託很熟悉,但是這種範式基本上不是一個駐留在剛剛來回傳遞的視圖控制器中的數組? – Woodstock

回答

9

有很多方法可以做到這一點。它依賴於你的viewControllers和你的問題的層次結構。

,你可以:

等等


+1

+1爲替代品的大名單。有見地。我很高興你沒有包括AppDelegate,Sqlite或NSUserDefaults –

+1

是的,我首先認爲這至少值得一提,但後來我意識到它毫無價值。如果別人記得另一種有效的方式,請在這裏留言,我將編輯答案 –

+0

@LucasEduardo \t 我現在有點困惑!你知道在兩個viewControllers之間我已經建立了一個委託(爲了正確地解除模態提供的UI viewcontroller),所以我準備好使用我已經創建的委託協議來讓我的數組來回傳遞。 ...我可以傳遞數組作爲UI viewcontrollers init方法的參數!然後,所做的任何更改都會立即反映出來,因爲我將該數組作爲指針傳遞,我甚至不需要使用委託來傳遞它,我是否錯過了某些內容? – Woodstock

相關問題