私はこれを頭の周りで数時間ガタガタ鳴らしています。UserProfileViewController
アプリでいいねやブックマークなどを処理するを作成しようとしています。子コントローラーからaccess_tokenを受け取ります。LoginViewController
私はLoginViewController
働いています。リモートシステムに対してUIWebViewを起動します。リモートシステムはログインを処理し、ユーザーのIDであるaccess_tokenを受け取ります。
データを返すためにデリゲートを設定しましたLoginViewController
が、のゲッターに値が必要だと思いますUserProfileViewController
。
UserProfileViewController.mがどのように見えるかを想像すると、次のようになりますが、明らかに機能しません。
@synthesize access_token = _access_token;
- (NSString *) access_token // Getter
{
if(!_access_token)
{
_access_token= [[NSUserDefaults standardUserDefaults] objectForKey:@"access_token"];
if (!_access_token)
{
LoginViewController *loginViewController = [[LoginViewController alloc] init];
loginViewController.delegate = self;
[self.navigationController pushViewController:loginViewController animated:YES];
// I need the access_token here but it won't arrive until delegate_AccessToken is called by LoginViewController
}
}
return _access_token;
}
// received from LoginViewController
- (void) delegate_AccessToken: (NSString *) aAccess_token
{
// now it's too late to use this in the Getter
}
- (IBOutlet *) likes: (id) sender
{
[self likeThis: sender access_token: _access_token];
}
access_tokenを取得するために電話をかけるのに適した時期はいつLoginViewController
ですか?