yas*_*sin 173 parameters view storyboard ios segue
在我的应用程序中,我有一个按编程方式执行segue的按钮:
- (void)myButtonMethod
{
//execute segue programmatically
[self performSegueWithIdentifier: @"MySegue" sender: self];
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以引用目标视图并传递一些参数.
我知道在prepareForSegue方法中,我可以用:来引用它myDestinationViewController *vc = [segue destinationViewController];,但我不知道如何以编程方式执行segue.
你有什么想法?
谢谢,亚萨
更新:
对不起这个问题我很抱歉!我只是发现,即使以编程prepareForSegue方式调用segue,也会调用该方法,因此可以以相同的常规方式传递参数.
tra*_*per 105
答案很简单就是如何触发segue没有区别.
prepareForSegue:sender:在任何情况下都会调用该方法,这是您传递参数的地方.
小智 90
老问题,但这里是如何做你要求的代码.在这种情况下,我将数据从表视图中的选定单元格传递到另一个视图控制器.
在trget视图的.h文件中:
@property(weak, nonatomic) NSObject* dataModel;
Run Code Online (Sandbox Code Playgroud)
在.m文件中:
@synthesize dataModel;
Run Code Online (Sandbox Code Playgroud)
dataModel可以是string,int或者在这种情况下它是一个包含许多项目的模型
- (void)someMethod {
[self performSegueWithIdentifier:@"loginMainSegue" sender:self];
}
Run Code Online (Sandbox Code Playgroud)
要么...
- (void)someMethod {
UIViewController *myController = [self.storyboard instantiateViewControllerWithIdentifier:@"HomeController"];
[self.navigationController pushViewController: myController animated:YES];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([segue.identifier isEqualToString:@"storyDetailsSegway"]) {
UITableViewCell *cell = (UITableViewCell *) sender;
NSIndexPath *indexPath = [self.tableView indexPathForCell:cell];
NSDictionary *storiesDict =[topStories objectAtIndex:[indexPath row]];
StoryModel *storyModel = [[StoryModel alloc] init];
storyModel = storiesDict;
StoryDetails *controller = (StoryDetails *)segue.destinationViewController;
controller.dataModel= storyModel;
}
}
Run Code Online (Sandbox Code Playgroud)