我携带一个包含对象集合的uitableview。 当我点击一个UITableViewCell打开另一个UIView。 但我想发送UITableViewCell中的这个新UIView对象并在那里显示它们的详细信息。 我跟着回答这个问题加载另一种观点认为:ViewController Segue Xamarin 我很感激,如果有人帮助如何使用segue传递对象
0
A
回答
1
覆盖PrepareForSegue在你的ViewController设置目标控制器上的参数。您需要定义目标控制器上的公共方法或属性,使您可以传递参数:
public override void PrepareForSegue (UIStoryboardSegue segue, NSObject sender)
{
if (segue.Identifier == "TaskSegue") { // set in Storyboard
var navctlr = segue.DestinationViewController as TaskDetailViewController;
if (navctlr != null) {
// some public method you create in your destination controller
navctlr.SetTask (this, item);
}
}
}
1
有几个解决方案,第一种是使用 prepareForSegue(_:发件人:)方法:
讨论 此方法的默认实现什么也不做; 可以覆盖它,以基于segue的上下文将相关数据传递给新视图控制器或窗口控制器。赛格对象 描述了转换并且包括对涉及赛格的两个控制器 的引用。
可以从多个来源触发分段,因此请使用segue和发件人参数中的信息 来消除应用程序中不同的 逻辑路径之间的歧义。例如,如果segue源自 表格视图,则sender参数将标识用户点击的单元格。您可以使用该信息在 目标视图控制器上设置数据。
在你需要 “拯救” 要在didSelectRow传递对象THI情况:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.currentObjectToPass = .. some object from array or somewhere else..
}
然后将其设置为下一个VC:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(UIButton*)sender {
if ([segue.identifier isEqualToString:@"bookingDetailsSegue"]) {
self.nextVC = segue.destinationViewController;
self.nextVC.objectToPass = self.currentObjectToPass;
}
}
另一种方法是拒绝使用segues并通过storyboardID获取vc。
这样你需要 instantiateViewController(withIdentifier :)方法:
返回值对应于指定的 标识符字符串视图控制器。如果没有视图控制器与 字符串关联,则此方法会引发异常。
讨论您可以使用此方法来创建你想要操作和编程目前在 应用程序 视图控制器对象。在使用此方法检索控制器之前,必须使用Interface Builder中的适当标识符 字符串明确标记它。
每次调用指定视图控制器 时,此方法都会创建一个新实例。
然后你的代码看起来就像这样:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
self.nextVC = [self.storyboard instantiateViewControllerWithIdentifier:@"nextVCID"];
self.nextVC.objectToPass = = .. some object from array or somewhere else..
[self.navigationController pushViewController:self.nextVC animated:YES];
}
而且不要忘记在IB设置VC的标识(ID故事板)在这里:
相关问题
- 1. 使用Segue传递对象
- 2. 使用segue的xcode传递对象
- 3. 用segue传递UIImage
- 4. 用segue传递UIImage
- 5. 如何使用$ rootScope传递对象?
- 6. 使用didSelectRowAtIndexPath传递对象:
- 7. 传递对象使用jQuery
- 8. 如何传递对象ID?
- 9. Segue传递整数
- 10. 如何通过segue传递变量?
- 11. 为什么我的对象没有通过segue正确传递?
- 12. 通过故事板传递一个对象Segue
- 13. 如何使用segue在uitextview中传递值
- 14. 如何使用segue传递拍摄的照片
- 15. 如何在不使用segue的情况下传递数据
- 16. 传递对象
- 17. 传递对象
- 18. 传递对象
- 19. 对象传递对象WEBSERVICES
- 20. 传递使用RMI的对象引用
- 21. 如何将对象传递给DLL或从中传回对象?
- 22. 如何将对象引用传递给另一个对象?
- 23. 传递新对象或对象引用
- 24. 传递数据展开segue
- 25. 通过segue传递数据
- 26. 传递字符串Segue Swift
- 27. 通过segue传递NSArray
- 28. 通过Segue传递信息
- 29. 通过segue传递数据
- 30. 如何使用openDDS传递任何对象?
尝试的https:/ /developer.xamarin.com/api/member/UIKit.UIViewController.PrepareForSegue/ – brandonscript