Sal*_*ieh 34 objective-c uiviewcontroller ios uistoryboard presentviewcontroller
我正在使用该presentViewController:animated:completion:
方法转到另一个视图控制器.
这是我的代码:
AddTaskViewController *add = [[AddTaskViewController alloc] init];
[self presentViewController:add animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
此代码转到另一个,UIViewController
但另一个控制器为空.我一直在使用故事板,但现在我需要在代码中完成.
Tim*_*Tim 50
如果您正在使用故事板,则可能不应该使用alloc
并init
创建新的视图控制器.相反,看看你的故事板,找到你想要执行的segue ; 它应该有一个唯一的标识符(如果没有,你可以在右侧边栏中设置一个).
找到该segue的标识符后,向当前视图控制器发送一条-performSegueWithIdentifier:sender
消息:
[self performSegueWithIdentifier:@"mySegueIdentifier" sender:self];
Run Code Online (Sandbox Code Playgroud)
这将导致故事板实例化AddTaskViewController,并以您为该segue定义的方式呈现它.
另一方面,如果您根本没有使用故事板,那么您需要为AddTaskViewController提供某种用户界面.最常见的方法是使用nib初始化控制器:而不是仅调用init
,您将调用-initWithNibName:bundle:
并提供包含add-task UI的.xib文件的名称:
AddTaskViewController *add = [[AddTaskViewController alloc]
initWithNibName:@"AddTaskView" bundle:nil];
[self presentViewController:add animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
(还有其他(不常见的)获取与新视图控制器关联的视图的方法,但这可能会给您带来最少的工作麻烦.)
小智 31
如果您正在使用Storyboard并且"添加"viewController在storyboard中,那么在设置中为"add"viewcontroller设置一个标识符,这样您就可以执行以下操作:
UIStoryboard* storyboard = [UIStoryboard storyboardWithName:@"NameOfYourStoryBoard"
bundle:nil];
AddTaskViewController *add =
[storyboard instantiateViewControllerWithIdentifier:@"viewControllerIdentifier"];
[self presentViewController:add
animated:YES
completion:nil];
Run Code Online (Sandbox Code Playgroud)
如果你没有在storyboard或nib文件中添加你的"添加"viewController并且想要创建整个programmaticaly,那么appDocs说:
如果无法在故事板或nib文件中定义视图,请覆盖loadView方法以手动实例化视图层次结构并将其分配给视图属性.
归档时间: |
|
查看次数: |
116641 次 |
最近记录: |