0

在我的项目中,我的第一个视图是日志视图,我想将用户名获取到其他类中。我真的不知道如何在其他课程中获得它,我在stackoverflow中搜索并没有找到(我尝试了几件事但没有成功)我告诉你我是如何尝试这样做的:

登录.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

登录.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;
    }

家.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);

}

我在我的所有项目中都需要这个值,以显示有关已连接客户端的信息。

我只需要一个提示或我可以使用的示例代码。

编辑:我按照给出的建议更改了我的代码,如果我错过了什么,请告诉我

4

2 回答 2

1

Two things:

  1. Your main problem is that you declared a method that takes a sender argument (getUser:(id)sender), but are sending a message with no colon or arguments (getUser). Those are two totally different things.

  2. Accessors in Objective-C should not start with get — it means something else. The selector (which is basically the Objective-C term for method names) should just be user. So:

    - (NSString *)user {
        return user;
    }
    
于 2011-02-14T10:28:23.287 回答
0

在 homeViewController 中创建类 loginViewController 的对象。

然后根据您的要求获取或设置登录变量的值。

假设你的 homeViewController 中需要一个 NSString,在 homeViewController 中创建 loginViewController 的对象。

anyRequiredVariable=login.usernameField.text;//Assuming that login is the object of loginViewController Class.

这将解决您的问题。

干杯

于 2011-02-14T10:21:41.890 回答