cdu*_*dub 3 uiviewcontroller uinavigationcontroller ios ios6
我有使用Storyboard进行seques的代码,如下所示:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:@"ShowDiagnosis"])
{
[segue.destinationViewController setHappiness:self.diagnosis];
}
...
Run Code Online (Sandbox Code Playgroud)
但我想以编程方式进行.我有myViewController类,当我点击一个按钮时,我想动画并推送到myUINavigationController.
这是如何以编程方式完成的?
mku*_*ayk 10
首先,不能以编程方式创建segue.它是由故事板运行时创建的.但是,您可以通过调用触发已在接口构建器中定义的segue performSegueWithIdentifier:.
除此之外,您可以确保在没有segue对象的视图控制器之间提供转换.在相应的操作方法中,通过以编程方式分配或使用其标识符从storyboard实例化来创建视图控制器实例.然后,将其推送到导航控制器.
- (void)buttonClicked:(UIButton *)sender
{
MyViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"my-vc-identifier"];
// OR MyViewController *vc = [[MyViewController alloc] init];
// any setup code for *vc
[self.navigationController pushViewController:vc animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
首先,segue只有你有一个UINavigationController能处理导航(推,弹等)的东西才能使用.
因此,如果您有一个UINavigationController并且您想UIViewController在不使用的情况下在堆栈上推送另一个,segue那么您可以使用pushViewController:animated:也具有相反的方法popViewControllerAnimated:.还UINavigationController提供了其他添加/删除方法UIVIewControllers,有关更多信息,请查看UINavigationController类参考.
| 归档时间: |
|
| 查看次数: |
11003 次 |
| 最近记录: |