我想显示一个自定义栏,它出现在我的应用程序的每个屏幕上,并带有可用的按钮。我在init方法中将CustomViewController添加到我的类中,一切正常,除非我分析我的应用程序时发生潜在的内存泄漏。
当我发布[customViewController release]时,CustomViewController上的按钮将不再起作用。在没有内存泄漏的情况下实现此解决方案的正确方法是什么。
#import "CustomViewController.h"
@implementation CustomViewController
- (IBAction)doSomething:(id)sender
{
// Perform an action
}
@end
我创建CustomViewController的ViewController:
- (id)initWithNibName:(NSString *)nibNameOrNil
bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
CustomViewController *customViewController = [[CustomViewController alloc] initWithNibName:@"CustomViewController" bundle:nil];
UIView *bar = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 30)];
[bar addSubview:customViewController.view];
[self.view addSubview:bar];
[bar release];
}
}
答案 0 :(得分:0)
您似乎正在以错误的方式实施此操作。您实际需要做的是创建CustomViewController并将工具栏添加到该视图。然后,应用程序中的每个其他视图控制器都应成为CustomViewController的子类。
如果自定义导航栏是您使用此超类的唯一选择,我建议您直接在您的应用正在使用的UINavigationController上设置样式。
答案 1 :(得分:0)
正确的解决方案是创建容器视图,并将我的自定义任务栏放在该视图中。
答案 2 :(得分:-1)
你说你的酒吧有按钮吗?是否在发布时释放这些按钮?检查它的viewDidLoad函数。