我有一個單身人士類MyController
類型UIViewController
。我可以能夠訪問視圖屬性像[MyController sharedInstance].view
,可能能夠設置到nil
一樣,iOS單身類
[MyController sharedInstance].view = nil;
我想限制別人訪問視圖屬性。我怎麼能阻止/限制呢?
我有一個單身人士類MyController
類型UIViewController
。我可以能夠訪問視圖屬性像[MyController sharedInstance].view
,可能能夠設置到nil
一樣,iOS單身類
[MyController sharedInstance].view = nil;
我想限制別人訪問視圖屬性。我怎麼能阻止/限制呢?
我自己找到了解決方案。我重寫方法爲
-(void)setView:(UIView*)view {
if (view == nil) {
//ignore - make no change
}
else {
//default performance
[super setView:view];
}
}
我在多個屏幕上使用控制器。如果控制器創建n次,它會增加應用程序的權重。所以,爲了克服這個問題,我創建了一次,並在每個地方重複使用它。
您可以爲您的UIViewController創建一個可用於多個視圖的基類。如果加載新視圖,iOS將正確處理內存管理。舊視圖將被卸載並且
- (void)viewDidDisappear:(BOOL)animated
- (void)viewWillDisappear:(BOOL)animated
將被調用。在那裏你可以處理任何多餘的數據。
我知道內存管理的東西。我以這種方式構建了我的應用程序。 – iOS
那爲什麼會創建n次? –
它顯然可以創建n次,但是在創建下一個實例時應該釋放前一個實例。重用UIViewController對我來說似乎是一件非常勇敢的事情。勇敢是不是你想成爲一名開發人員! – gnasher729
你爲什麼要UIViewController是一個共享實例/單身? –
爲了重用,我有一個相應設計爲singleton的viewcontroller,我正在使用它。 – iOS
但是你想重複使用什麼? –