2015-11-27 54 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

没有工作。 –

相关问题