2 vikeytoy vikeyToy 于 2013.06.20 14:53 提问

从xib到storyboard的封装性问题

用xib可以调用不同的初始化块。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    // Fetch Note...
    // Initialize Edit Note View Controller with the fetched Note
    EditNoteViewController *vc = [[EditNoteViewController alloc] initWithNote:note];

    // Push View Controller onto Navigation Stack
    [self.navigationController pushViewController:vc animated:YES];
}

这样我就可以保持变量(在EditNoteViewController中)私有化,而且可以设置变量的默认值。比如:

- (id)initWithNote:(Note *)note {
    // ....
    if (self) {
        self.note = note;
        self.isEditing = YES;
    }
    return self;
}

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
    //...
    if (self) {
        self.isEditing = NO;
    }
    return self;
}

现在要用storyboard,有两个问题:

1.在prepareForSegue设置变量,怎么不暴露变量或其他实现?
2.能设置默认值吗?

谢谢您的解答。

Csdn user default icon
上传中...
上传图片
插入图片