如何在iOS SDK中使用presentViewController在视图控制器之间传递变量?

时间:2014-03-09 13:30:28

标签: ios variables ios7 uiviewcontroller sdk

前几天我写了一个使用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];

}

但今天我需要将变量用户从此方法传递给加载的viewController。

如何修改我的方法来执行此操作?

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

2 个答案:

答案 0 :(得分:10)

向目标viewController添加属性(在.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];

}

答案 1 :(得分:3)

Swift Solution

@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)