我在viewdidload方法中创建了按钮:
UIButton * button2 = [UIButton buttonWithType:UIButtonTypeCustom];
[button2 addTarget:self action:@selector(showVideo:)forControlEvents:UIControlEventTouchUpInside];
在按钮操作方法中,我以编程方式调用segue:
- (void) showVideo:(id)sender {
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
准备segue方法调用模态视图控制器的代码
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"MySegue"])
{
Xen_VideoViewController *addController = [segue destinationViewController];
[self presentViewController:addController animated:YES completion: nil];
}
}
我引用链接[link]:Creating a segue programmatically
但我收到错误
"应用程序尝试以模态方式呈现一个活动控制器"
我需要在按下按钮时显示模态视图控制器,但按钮是以编程方式创建的。滚动视图中重复了该按钮。
获取模态视图控制器的任何其他方法?
提前致谢......
答案 0 :(得分:1)
您present
方法不应addController
prepareForSegue
。
我指的是您自己分享的链接:
https://stackoverflow.com/a/17012857/1939409
您应该在seque
文件中创建xib
,然后在下面的线路中致电:
[self performSegueWithIdentifier: @"MySegue" sender: self];
该应用将根据您创建的xib ViewController
显示目标segue
。因此,无需在presentViewController
方法中调用prepareForSegue
。
如果您已经在xib
中创建了segue,那么只需删除prepareForSegue
方法,并且每件事都应该没问题。
如果你甚至,也不想在你的xib中创建segue。所以我认为唯一的方法是提供模态视图控制器。