如果您使用的是故事板,您可能不应该使用alloc
andinit
创建一个新的视图控制器。相反,请查看您的故事板并找到您想要执行的转场;它应该有一个唯一的标识符(如果没有,您可以在右侧边栏中设置一个)。
找到该 segue 的标识符后,向当前视图控制器发送一条-performSegueWithIdentifier:sender
消息:
[self performSegueWithIdentifier:@"mySegueIdentifier" sender:self];
这将导致情节提要实例化一个 AddTaskViewController 并以您为该 segue 定义的方式呈现它。
另一方面,如果您根本不使用情节提要,那么您需要为 AddTaskViewController 提供某种用户界面。这样做的最常见方法是使用 nib 初始化控制器:init
您将调用-initWithNibName:bundle:
并提供包含添加任务 UI 的 .xib 文件的名称,而不是仅仅调用:
AddTaskViewController *add = [[AddTaskViewController alloc]
initWithNibName:@"AddTaskView" bundle:nil];
[self presentViewController:add animated:YES completion:nil];
(还有其他(不太常见的)方法可以获得与新视图控制器关联的视图,但这可能会给您带来最少的工作麻烦。)