2015-11-27 55 views
0

我編寫我的應用程序的方式是通過我的ViewController.m文件中的方法加載我的視圖。加載視圖後,我的應用程序通過菜單進行並通過按鈕操作顯示,並更新了將self.view設置爲由我的方法生成的不同顯示。這個問題是我的內存消耗。每次按下按鈕時,顯示下一個「視圖」的方法都會變成孩子等等。這會像瘋了一樣咀嚼記憶,而且我不想重新編碼所有東西(我沒有使用僅使用編碼的故事板)。我試圖在無限循環中創建一個切換視圖的方法,但它不會更新self.view。我需要一種僅使用代碼來切換視圖的方法(顯示我的視圖和故事板是不可能的,太複雜以至於無法對齊)。正在加載視圖ObjC Single View Controller

示例代碼:

#import "ViewController.h" 
@interface ViewController() 

@end 

@implementation ViewController 
...global vars... 
-(void)viewDidLoad { 
    [super viewDidLoad]; 
    ...setup... 
    [self Load_Main_Menu]; 
} 
-(void)Load_Main_Menu { 

    ...setup UIView display... 
    UIButton *Button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [Button addTarget:self action:@selector(PlayButtonPressed:)  forControlEvents:UIControlEventTouchUpInside]; 
    self.view=display; 
} 
-(void)PlayBt:(UIButton*)sender{ 
    [self load_Other_Menus]; 
} 

所有導航和UI作爲這樣處理。 改進內存管理和導航的任何想法?

回答

0

試試這個

-(void)viewDidLoad { 
    [super viewDidLoad]; 
    ...setup... 
    [self setupButton]; 
    [self displayView]; 
} 

-(void)setupButton { 
    UIButton *Button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [Button addTarget:self action:@selector(displayView)  forControlEvents:UIControlEventTouchUpInside]; 
    ..add button to view 
} 

-(void)displayView { 

    ...setup UIView display... 

    self.view=display; 
} 
+0

問題仍然存在,作爲我點擊按鈕,每個按鈕所謂的新方法成爲一個孩子,嚼了記憶。想象一下,每次我點擊一個菜單按鈕,然後點擊後退按鈕,並重複方法堆疊,並逐漸內存超過150MB。每種方法都是10-30mb,但是因爲之前的父親方法沒有發佈,所以內存只是加起來。按鈕和一切工作正常,我只是想知道如何防止這堆父函​​數。 –

+0

忘了提及將view.didload中的所有按鈕設置都很困難,因爲我生成的菜單取決於哪個菜單被點擊。我嘗試通過查看view.didload中的按鈕來玩這個想法,但是每次我創建一個按鈕時,我只是編輯這個按鈕的特徵,因此它就像一個模板,允許我創建多個按鈕,同時只有一個按鈕函數作爲其父項。我仍然會欣賞任何其他的想法! –

+0

沒有工作。 –

相關問題