2015-04-22 12 views
-2

我有一個單身人士類MyController類型UIViewController。我可以能夠訪問視圖屬性像[MyController sharedInstance].view,可能能夠設置到nil一樣,iOS單身類

[MyController sharedInstance].view = nil; 

我想限制別人訪問視圖屬性。我怎麼能阻止/限制呢?

+2

你爲什麼要UIViewController是一個共享實例/單身? –

+0

爲了重用,我有一個相應設計爲singleton的viewcontroller,我正在使用它。 – iOS

+0

但是你想重複使用什麼? –

回答

0

我自己找到了解決方案。我重寫方法爲

-(void)setView:(UIView*)view { 
    if (view == nil) { 
     //ignore - make no change 
    } 
    else { 
     //default performance 
     [super setView:view]; 
    } 
} 
-2

我在多個屏幕上使用控制器。如果控制器創建n次,它會增加應用程序的權重。所以,爲了克服這個問題,我創建了一次,並在每個地方重複使用它。

您可以爲您的UIViewController創建一個可用於多個視圖的基類。如果加載新視圖,iOS將正確處理內存管理。舊視圖將被卸載並且

- (void)viewDidDisappear:(BOOL)animated 
- (void)viewWillDisappear:(BOOL)animated 

將被調用。在那裏你可以處理任何多餘的數據。

+0

我知道內存管理的東西。我以這種方式構建了我的應用程序。 – iOS

+0

那爲什麼會創建n次? –

+2

它顯然可以創建n次,但是在創建下一個實例時應該釋放前一個實例。重用UIViewController對我來說似乎是一件非常勇敢的事情。勇敢是不是你想成爲一名開發人員! – gnasher729