问题描述
- 从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.能设置默认值吗?谢谢您的解答。
时间: 2024-08-04 00:55:45