免责声明:我对iOS开发相对较新。我正在为这个项目使用ARC。
SettingsViewController
使用以下代码将HomeViewController
作为模态视图显示:
-(void) btnSettings:(id)sender {
SettingsViewController *settingsViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"SettingsView"];
[self presentModalViewController:settingsViewController animated:YES];
}
SettingsViewController.h
:
@interface SettingsViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIScrollView *scrollView;
@end
`SettingsViewController通过以下方式解散自己:
-(void) btnBack:(id)sender {
[self dismissViewControllerAnimated:YES completion:nil];
}
我有一个名为UIView
的自定义UISettingView
,它本质上是一个自定义视图,我将其初始化并添加到scrollView
IBOutlet
:
UISettingView *settingsSkin = [[UISettingView alloc] initWithID:1 Title:@"READER SKIN" SettingsKey:kSETTINGSReaderSkin Items:readerSkinSettings Position:CGPointMake(10, 10) Delegate:self];
[settingsSkin setNeedsDisplay];
[self.scrollView addSubview:settingsSkin];
一切似乎工作正常,直到我使用Instruments查看分配,我在Home和Settings视图控制器中来回显示以下图像:
我认为问题出在[self.scrollView addSubview:]
,因为当我删除它时,废弃的内存问题是固定的。但是,我不知道如何解决这个问题。我的意思是,将以编程方式创建的UIView
添加到IBOutlet
?
谢谢。
编辑1
UISettingView
接收当前的ViewController作为委托,并将其传递给Global类中的以下类方法
+(UIButton *) getHeaderViewUIButtonWithDelegate:(UIViewController *)delegate {
UIButton *button= [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:[UIImage imageNamed:@"menu-icon-default"] forState:UIControlStateNormal];
[button setBackgroundImage:[UIImage imageNamed:@"menu-icon-roll"] forState:UIControlStateHighlighted];
[button addTarget:delegate action:@selector(btnHome:) forControlEvents:UIControlEventTouchUpInside];
return button;
}
编辑2 堆详细信息