【问题标题】:How to pass variables between view controller using presentViewController in iOS SDK?如何在 iOS SDK 中使用 presentViewController 在视图控制器之间传递变量?
【发布时间】:2014-03-09 13:30:28
【问题描述】:

几天前,我写了一个使用 presentViewController 加载视图控制器的方法:

-(void)passaGC:(NSString *)user
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"generaC"];
[self presentViewController:viewController animated:YES completion:nil];

}

但是今天我需要将变量 user 从这个方法传递给加载的 viewController。

如何修改我的方法来做到这一点?

我发现了关于堆栈溢出的其他问题,但没有什么与我的请求真正相似

【问题讨论】:

标签: ios variables ios7 uiviewcontroller sdk


【解决方案1】:

将属性添加到目标视图控制器(在 .h 中):

@property (strong, nonatomic) NSString *user;

最后你的方法看起来像

-(void)passaGC:(NSString *)user
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UIViewController *viewController = (UIViewController *)[storyboard instantiateViewControllerWithIdentifier:@"generaC"];

viewController.user = user;

[self presentViewController:viewController animated:YES completion:nil];

}

【讨论】:

  • 谢谢,但是如何解析/获取参数值。
【解决方案2】:

迅捷解决方案

除了 @IBOutlets,您可以简单地将数据分配给目标视图控制器属性。

DestinationVC.swift

var name: String?

SourceVC.swift

let storyboard = UIStoryboard(name: "Helper", bundle: nil)
let destinationVC = storyboard.instantiateViewControllerWithIdentifier("DestinationSID") as! DestinationVC
destinationVC.name = "Mustafa"
presentViewController(destinationVC, animated: true, completion: nil)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 1970-01-01
    • 2010-12-14
    • 2015-12-28
    • 2017-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多