0

私のプロジェクトでは、最初のビューはログ ビューです。たとえば、ユーザー名を他のクラスに取得したいと考えています。他のクラスでそれを取得する方法がよくわかりません.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;
    }

ホーム.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

2つのこと:

  1. 主な問題は、引数()を受け取るメソッドを宣言したが、senderコロンgetUser:(id)senderまたは引数()のないメッセージを送信していることgetUserです。これらは2つのまったく異なるものです。

  2. Objective-Cのアクセサは最初から始めるべきではありませんget—それは何か他のものを意味します。セレクター(基本的にはメソッド名のObjective-C用語です)は、である必要がありますuser。それで:

    - (NSString *)user {
        return user;
    }
    
于 2011-02-14T10:28:23.287 に答える