Ios 使用performsgue将数据传递到目标视图控制器
因此我知道,如果有一个序列是通过故事板设置和激活的,可以使用Ios 使用performsgue将数据传递到目标视图控制器,ios,segue,uistoryboardsegue,xcode-storyboard,Ios,Segue,Uistoryboardsegue,Xcode Storyboard,因此我知道,如果有一个序列是通过故事板设置和激活的,可以使用prepareforsgue方法将数据传递给目标视图控制器 我想知道如果使用performsguewithidentifier方法,是否有办法做到这一点?似乎只有当segue是通过脚本激活的,而不是通过performsgue激活的,才会调用prepareforsgue方法 一个特别的问题是我无法访问UIStoryboardSegue(它不是performSegue中的参数,因为它在prepareForSegue中),因此也无法访问目标V
prepareforsgue
方法将数据传递给目标视图控制器
我想知道如果使用performsguewithidentifier
方法,是否有办法做到这一点?似乎只有当segue是通过脚本激活的,而不是通过performsgue激活的,才会调用prepareforsgue
方法
一个特别的问题是我无法访问
UIStoryboardSegue
(它不是performSegue
中的参数,因为它在prepareForSegue
中),因此也无法访问目标VC。答案在StackOverflow中。
您的问题似乎不正确-在您调用
performsguewithidentifier:sender:
后,视图控制器将收到prepareForSegue:sender:
消息。UIStoryboardSegue
对象将有一个属性destinationViewController
,因此您可以获取对目标视图控制器的引用。可能重复@robotcat ok,是的,您是正确的,它正在调用prepareforsgue:sender:
我做的测试不正确,我的错。有办法删除问题吗?因为这个问题无关紧要now@user3809369:回答完成后,无法删除问题
// When any of buttons are pressed, push the next view
- (IBAction)buttonPressed:(id)sender
{
[self performSegueWithIdentifier:@"MySegue" sender:sender];
}
// This will get called too before the view appears
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([[segue identifier] isEqualToString:@"MySegue"]) {
// Get destination view
SecondView *vc = [segue destinationViewController];
// Get button tag number (or do whatever you need to do here, based on your object
NSInteger tagIndex = [(UIButton *)sender tag];
// Pass the information to your destination view
[vc setSelectedButton:tagIndex];
}
}