我正在使用Parse anypic教程,我想创建一个不同的UI。但我有一些麻烦。
所以,我的ViewController是这样的:
@interface PAPHomeViewController ()
@property (nonatomic, strong) PAPSettingsActionSheetDelegate *settingsActionSheetDelegate;
@property (nonatomic, strong) UIView *blankTimelineView;
@end
@implementation PAPHomeViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"LoadView is called");
// Present Anypic UI
[self presentUI];
}
-(void) presentUI {
/*UIImageView *backgroundImageView = [[UIImageView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
[backgroundImageView setImage:[UIImage imageNamed:@"DefaultAnypic.png"]];
self.view = backgroundImageView;*/
// Settings button
self.settingsButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[self.settingsButton addTarget:self
action:@selector(settingsButtonAction:)
forControlEvents:UIControlEventTouchUpInside];
[self.settingsButton setTitle:@"Settings" forState:UIControlStateNormal];
self.settingsButton.frame = CGRectMake(200.0, 200.0, 100.0, 100.0);
[self.view addSubview:self.settingsButton];
}
及其.h文件是这样的:
@interface PAPHomeViewController : PAPPhotoTimelineViewController
@end
PAPPhotoTimelineViewController也是一个单独的ViewController,Home扩展自它,它是一个tableViewController,它也调用ViewDidLoad。
问题:
使用上面的代码,我看到了我的按钮,我可以点击我的按钮。
但是,如果我取消注释背景的东西,我确实看到了背景,我确实看到了按钮,但它无法点击 - 就像没有触摸按钮一样。
我也很困惑,现在我正在扩展另一个ViewController,它也实现了viewDidLoad,为什么它们都被调用,按顺序等等。
答案 0 :(得分:2)
您不应该为UIView
分配新的self.view
。
而不是self.view = backgroundImageView;
,只需将其添加为随机视图即可。
[self.view addSubview:backgroundImageView];
这样做,您将按照正确的方式添加子视图:您的backgroundImageView
将显示在您的视图中,您的按钮将添加到其上方。