我需要在两个之间传递数据,ViewControllers
但UIButton
简而言之,我需要访问other中的变量ViewController
。我的代码是:
LoginViewController *lvc;
NSString name=lvc.name;
这种特定情况可能比委托人要容易一些。
据我所知,您正在尝试传递登录凭据(名称/登录/密码/某物)。我会根据实际情况使用两件事。
无论是NSUserDefaults
或-performSegueWithIdentifier:
NSUserDefaults是一个文件,只需使用以下命令,该文件就会加载到您可以阅读和编辑的每个应用程序中:
设置变量:
NSString *aName;
[[NSUserDefaults standardUserDefaults]setObject:aName forKey:@"userName"];
获取变量:
NSString *aName = [[NSUserDefaults standardUserDefaults]objectForKey:@"userName"];
请注意,您可以保存下列对象NSDictionary
,NSArray
,NSString
,NSNumber
,NSData
,,也许一对夫妇的我忘了,但有人可以编辑,如果我做的。
请注意,此文件在每次启动时都会加载,因此您不想将其用作数据库,而是更多易于使用的小型存储设备,例如用于用户名,首选项/设置以及诸如此类的东西。
另一种方法是performsegue
在两个控制器之间使用,但这是必需的storyboards
。
在您的两个控制器之间拖动一个segue,将其命名(例如)fromLoginToHome
。我假设流程从登录控制器流向家庭控制器。
当您在两个视图之间移动时(例如,当用户按下“登录”时),请调用此方法
[self performSegueWithidentifier:@"fromLoginToHome" sender:self];
然后,您需要实现此方法,该方法通常存在于注释块中(创建Vc时总是这样)
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if([segue.identifier isEqualToString:@"fromLoginToHome"]){
HomeViewController *vc = (HomeViewController*)segue.destinationViewController;
vc.myName = _myName;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句