我有一个名为LoginWindowViewController.h的视图控制器,它声明了一个名为usernameTextField的属性:
@property (strong, nonatomic) IBOutlet UITextField *usernameTextField;
名为James的字符串与此TextField相关联。 然后我将另一个视图控制器FirstViewController.h导入到我的LoginWindowViewController.m中,我还将LoginWindowViewController.h导入到FirstViewController.m中。在我的FirstViewController.h中有一个名为username的属性。
@property (strong, nonatomic) IBOutlet NSString *userName;
然后我将usernameTextField分配给用户名(在我的FirstViewController.m中)。但是当我在我的FirstViewController.m中使用NSlog属性用户名时,它会给出一个空值。我该如何修复它?
答案 0 :(得分:1)
导入类时,实际上并不导入任何值。设置属性的值时,它仅在该类的实例上设置。您需要显式引用当前实例的属性以获取您设置的值。
一个注意事项:IBOutlet代表Interface Builder Outlet,它是如何创建从storyboard或xib文件UI元素到类属性的链接。因此,如果您没有链接到界面构建器中的某些内容,则无需使用IBOutlet。
应声明字符串
@property (nonatomic, strong) NSString *userName;
然后,当您从第一个视图控制器实例化您的登录视图控制器时,您可以像这样设置属性
LoginWindowViewController *loginVC = [[LoginWindowViewController alloc] init];
[loginVC.usernameTextField setText:self.userName];