Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/44.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何使我的方法在视图重新加载时运行_Iphone_Objective C_Facebook - Fatal编程技术网

Iphone 如何使我的方法在视图重新加载时运行

Iphone 如何使我的方法在视图重新加载时运行,iphone,objective-c,facebook,Iphone,Objective C,Facebook,我想创建一个登录按钮。当我点击facebook启动时,我接受我的应用程序,facebook应用程序关闭,我的应用程序重新加载。我的问题是,当我的应用程序在Facebook上接受后第二次启动时,我找不到在哪里禁用登录按钮 我写了这段代码: -(IBAction) login:(id)sender; { AutoAppDelegate *delegate = (AutoAppDelegate *) [[UIApplication sharedApplication] delegate];

我想创建一个登录按钮。当我点击facebook启动时,我接受我的应用程序,facebook应用程序关闭,我的应用程序重新加载。我的问题是,当我的应用程序在Facebook上接受后第二次启动时,我找不到在哪里禁用登录按钮

我写了这段代码:

-(IBAction) login:(id)sender;
{

    AutoAppDelegate *delegate = (AutoAppDelegate *) [[UIApplication sharedApplication] delegate];
    // Check and retrieve authorization information
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        [delegate facebook].accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        [delegate facebook].expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }
    if (![[delegate facebook] isSessionValid]) {
        [delegate facebook].sessionDelegate = self;
        NSArray *permissions = [[NSArray alloc] initWithObjects:
                                @"user_likes", 
                                @"read_stream",
                                nil];
        [[delegate facebook] authorize:permissions];
    } else {
        logIn.hidden=YES;
        lbl.text=@"";
        lbl.text=@"Connected";
        [self showLoggedIn];
    }
}

- (void) showLoggedIn {
    NSLog(@"11 Logged In ");
    lbl.text=@"";
    lbl.text=@"Connected";
}

- (void) showLoggedOut {
    NSLog(@"11 Not Logged In ");
    lbl.text=@"";
    lbl.text=@"Not Connected";
}



- (void) viewWillAppear:(BOOL)animated
{
    //[self.navigationController setNavigationBarHidden:YES animated:animated];
    [super viewWillAppear:animated];

    AutoAppDelegate *delegate = (AutoAppDelegate *) [[UIApplication sharedApplication] delegate];
    // Check and retrieve authorization information
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        [delegate facebook].accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        [delegate facebook].expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }
    if (![[delegate facebook] isSessionValid]) {
       // [self showLoggedOut];
        NSLog(@"Not Connected");
    } else {
       // [self showLoggedIn];
        NSLog(@"Connected");
    }

}

viewwillbeen
第一次工作,但是当我在Facebook应用程序中授予权限时,我的应用程序会重新启动,但不是
viewwillbeen
方法

你是否尝试在Facebook操作完成后调用setNeedsDisplay在视图上显示?

你需要将代码放入你的应用程序委托(
ApplicationWilenterForeground
),因为这是在应用程序重新打开时自动收到通知的唯一方法(你的视图不一定被重新绘制)