我按照iOS Developer Library中的CoreDataBooks示例设计了我的代码。当在UINavigationControl中按下+ -Button时,应该出现一个自定义AddViewController的segue,类似于iOS AddressBook中的视图。
我使用自定义视图控制器而不是UITableView控制器,就像在CoreDataBooks中一样。因此,在CoreDataBooks中呈现视图控制器的代码如下所示:
AddViewController *addViewController = [[AddViewController alloc] initWithStyle:UITableViewStyleGrouped];
addViewController.delegate = self;
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:addViewController];
[self.navigationController presentModalViewController:navController animated:YES];
我的看起来像这样:
AddViewController *addViewController = [[AddViewController alloc] init];
[addViewController setDelegate: self];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:addViewController];
[self.navigationController presentModalViewController:navController animated:YES];
所以它基本相同,但我使用init初始化AddViewController,而使用UITableViewController继承的initWithStyle方法而不是。
如何正确初始化自定义视图控制器?我尝试在init方法中调用[super init],但这没有帮助。
答案 0 :(得分:0)
因为您正在使用Storyboard来设计应用程序流,所以您应该在故事板中将模式表示定义为模态segue,为segue指定标识符并覆盖根视图控制器中的prepareForSegue:sender:
。
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"MySegueIdentifier"]) {
AddViewController *destination = [[[segue destinationViewController] viewControllers] objectAtIndex:0];
[destination setDelegate:self];
}
}