1

我有一个 Storyboard View Controller(带有我自己的自定义子类),其中我有一个 initWithCoder 自定义方法,我想在其中使用我自己的自定义对象来流行视图(我想保持以编程方式执行此操作的灵活性。

代码工作正常,直到[self.view addSubview:button];被调用,然后它崩溃:“无法在包中加载 NIB”。

我想做的就是在我的视图上添加一个 UIButton ......

- (id)initWithCoder:(NSCoder*)aDecoder 
{
    if(self = [super initWithCoder:aDecoder]) 
    {
        [self initLoginForm];
    }
    return self;
}

-(void)initLoginForm
{

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame = CGRectMake(100, 170, 100, 30);
    [button setTitle:@"Login..." forState:UIControlStateNormal];
    [button addTarget:self action:@selector(handleLoginAttempt) forControlEvents:UIControlEventTouchUpInside];

    [self.view addSubview:button]; 

}
4

1 回答 1

2

如何将按钮放入viewDidLoad方法中,然后将其添加到initLoginForm.

像这样的东西:

-(void)viewDidLoad {
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    button.frame = CGRectMake(100, 170, 100, 30);
    [button setTitle:@"Login..." forState:UIControlStateNormal];
    [button addTarget:self action:@selector(handleLoginAttempt) forControlEvents:UIControlEventTouchUpInside];
}

-(void)initLoginForm {

[self.view addSubview:button];

}

或者添加它viewDidLoad然后隐藏它,然后在initLoginForm显示它。

于 2012-08-17T01:15:35.533 回答