前几天我写了一个使用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。
如何修改我的方法来执行此操作?
我发现有关堆栈溢出的其他问题,但没有什么与我的请求非常相似
答案 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)
除 @IBOutlets 外,您可以简单地将数据分配到目标视图控制器属性。
var name: String?
let storyboard = UIStoryboard(name: "Helper", bundle: nil)
let destinationVC = storyboard.instantiateViewControllerWithIdentifier("DestinationSID") as! DestinationVC
destinationVC.name = "Mustafa"
presentViewController(destinationVC, animated: true, completion: nil)