2012-03-23 34 views
1

我真的需要一些幫助,我的iPad應用程序。下面的場景:modalViewController:屬性和變量

  • MAINVIEW負載
  • MAINVIEW設置一些變量
  • MAINVIEW呈現modalView
  • modalView對象添加到MAINVIEW的mutableArray
  • modalView駁斥,並呼籲一個MAINVIEW的方法

現在我的問題: 如何在不創建n的情況下訪問變量和方法每個實例都是?

當我在modalView中做mainView *main = [[mainView alloc] init];時,爲了訪問方法和變量,舊的實例被破壞,當我返回mainView的時候,我鬆開了所有的變量。

感謝您的幫助!祝好運,Julian

+0

我不明白,*爲什麼*你分配一個新的mainView。根本不要這樣做。 – Matthias 2012-03-23 07:37:39

+0

_Not_分配的mainView將導致應用程序崩潰** SIGABRT **我應該如何實現父(mainView)然後?! – 2012-03-23 07:44:53

+0

不要*重新分配它。你需要一個控制器實例,只分配一個。 – Matthias 2012-03-23 08:08:18

回答

0

一種方法是將一個屬性添加到您的modalView,如parent。然後,在您從mainView撥打電話presentModalViewController之前,您需要設置modalView.parent = self;。這樣,您可以從modalView反向參考mainView(具體實例)。

另一種方法是使您的mainView單身對象。根據您的應用程序的設計,這可能會或可能不會最適合您。我完成單身物件的方式如下:
+在mainView(例如mv_)中創建一個全局/靜態變量。類型應該與類相同(即mainView)。初始化爲nil
+創建一個類方法來分配&初始化該變量(如果實例尚不存在),或者按原樣返回它(如果您已經初始化它)。這可以是簡單:

+ (mainView *) getMainView() 
{ 
    if (!mv_) 
     _mv = [[self alloc] init]; 
    return mv_; 
} 

+之後,當需要訪問MAINVIEW單獨的對象,你只需要調用getMainView。使用這種方法時有一些怪癖,所以如果你決定這樣做的話,確保你的應用程序的行爲如你所願。