应用程序从后台返回时UIToolBar创建问题

时间:2011-05-12 12:26:46

标签: iphone ios4 multitasking uitoolbar

我在使用sdk中的initWithFrame:method初始化的视图中使用uitoolbar。我的意思是我在逐步添加工具栏。在多任务处理时,此工具栏会产生问题。任何人都可以给我一些解决方案或光线来继续。因为我使用自定义的uitablecontroller类,所以我无法在xib中添加它。我的代码如下:

-(void)viewDidLoad
{

[super viewDidLoad];    
actionToolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 373, 320, 44)];  
[actionToolbar insertSubview:[[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"top-bar.png"]] autorelease] atIndex:0];

actionButton = [NotesList createSquareBarButtonItemWithTitle:@"Delete" target:self action:@selector(noAction:)];
flexibleSpace1 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
flexibleSpace2 = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];    

composeButton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:self action:@selector(addNewGroup:)]autorelease];
composeButton.style = UIBarButtonItemStylePlain;    
[actionToolbar setItems:[NSArray arrayWithObjects:flexibleSpace1, flexibleSpace2, composeButton, nil]]; 
[self.view.superview addSubview:actionToolbar];

self.tableView.frame = CGRectMake(0, 0, 320, 400);  
[self.tableView setAllowsSelectionDuringEditing:YES];   
[flexibleSpace1 retain];
[flexibleSpace2 retain];
[actionButton retain];
[composeButton retain]; 
[self parseDataForThisFile];
}

2 个答案:

答案 0 :(得分:0)

即使您使用自定义UITableViewController子类,也可以使用NIB文件。可以在Interface Builder中的检查器的标识选项卡上指定要使用的确切类。Class Identity http://www.peylow.se/ClassIdentity.png

如果您在多任务处理时遇到问题,那么我怀疑您没有正确处理视图的卸载。您的应用程序可以在转到后台时从视图控制器卸载视图以释放更多内存。

请务必确保loadViewviewDidLoad中设置/创建的任何连接也已在viewDidUnload中正确断开/释放。否则您的应用可能会发生奇怪和意外的事情。

答案 1 :(得分:0)

当应用从背景返回时,我通过设置标签栏控制器的框架来解析代码