在我的项目中,我的第一个视图是一个登录视图,我想将用户名例如其他类中的用户名。 我真的不知道如何在其他类中获取它,我在stackoverflow中搜索并且没有找到(我尝试了几件但是它没有用) 我告诉你我是怎么做到的:
login.h
@interface loginViewController:UIViewController <UITextfieldDelegate>{
IBOutlet UITextField *usernameField;
IBOutlet UITextField *passwordField;
IBOutlet UIButton *loginButton;
NSString *user;
}
@property (nonatomic, retain) UITextField *usernameField;
@property (nonatomic, retain) UITextField *passwordField;
@property (nonatomic, retain) UIButton *loginButton;
@property (nonatomic, retain) NSString *user;
- (IBAction)login: (id) sender;
- (NSString *)user;
@end
login.m
@implementation LoginViewController
@synthesize usernameField;
@synthesize passwordField;
@synthesize loginButton;
- (IBAction) login: (id) sender{
user=[[NSString alloc ]initWithFormat:@"%@",usernameField.text];
//...I put here my login code...
}
- (NSString *)user{
return user;
}
home.m
@implementation homeViewController
- (void)viewDidLoad
{
[super viewDidLoad];
user2 = LoginViewController.user ; //I tried this after the advice given below, still not working
user2 = LoginViewController.usernameField.text; //same
NSLog(@"user: %@",user2);
}
我将在我的所有项目中使用此值,以显示有关已连接的客户端的信息。
我只需要一个我可以使用的提示或示例代码。
编辑:我根据给出的建议更改了我的代码,告诉我是否遗漏了某些内容
答案 0 :(得分:1)
两件事:
您的主要问题是您声明了一个采用sender
参数(getUser:(id)sender
)的方法,但是发送的消息没有冒号或参数(getUser
)。这是两件完全不同的事情。
Objective-C中的访问者不应该以{{1}}开头 - 这意味着别的东西。选择器(基本上是方法名称的Objective-C术语)应该只是get
。所以:
user
答案 1 :(得分:0)
在homeViewController中创建类loginViewController的对象。
然后根据您的要求获取或设置登录变量的值。
假设你的homeViewController需要一个NSString,在homeViewController中创建一个loginViewController对象。
anyRequiredVariable=login.usernameField.text;//Assuming that login is the object of loginViewController Class.
这将解决您的问题。
干杯