Soru & Cevap

Bir butona basınca başka bir butonu tetikleme ...

19.08.2014 - 04:47

Merhaba facebook ile giriş yapmayı kolaylaştırmak için facebook FBLoginView sınıfı var ve buradan button oluşturup login with facebook uygulaması oluşturabiliyorsunuz kullanımıda çok rahat fakat tek sorunu bu UIFBview'in sadece 250 ye 50 şeklinde facebook'un verdiği button olması Login kısmında sorun yok ama logout'u küçük bir şekilde sağ tarafa eklemek istiyorum.

 

Bunun için login olduktan sonra CGRECTMAKE ile 0 0 0 0 yaparak fblogin viewi gizliyorum.

 

Fakat ufak bir buttona tıklayınca benim FBLoginviewimi tetikleyebilmek istiyorum yani.

Kaynak kod aşağıda .


#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

@synthesize imgim;

- (void)viewDidLoad
{
    [super viewDidLoad];
    
     self.LoginView.readPermissions = @[@"public_profile", @"email"];
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    
    
}

 

- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView user:(id<FBGraphUser>)user
{
    NSLog(@"%@ %@ %@ ", [user objectForKey:@"id"] ,  [user objectForKey:@"email"] ,  user.name);
    
    NSString *mystr1 = [[NSString alloc] init];
    mystr1 = [user objectForKey:@"id"];
    NSString *someOtherString = [NSString stringWithFormat: @"http://graph.facebook.com/%@/picture?height=200&width=200", mystr1];
    
    NSURL *imageURL = [NSURL URLWithString:someOtherString];
    NSData *imageData = [NSData dataWithContentsOfURL:imageURL];
    UIImage *myimg = [UIImage imageWithData:imageData];
    [imgim setImage:myimg];
    
   
}

- (void)loginViewShowingLoggedInUser:(FBLoginView *)loginView
{
    
    NSLog(@"You are logged in! :) ");
}

- (void)loginViewShowingLoggedOutUser:(FBLoginView *)loginView
{
    //[self.LoginView setFrame:CGRectMake(0, 0, 0, 0)];
    
    NSLog(@"You are logged out! :( ");
}

- (void)loginView:(FBLoginView *)loginView handleError:(NSError *)error
{
    NSString *alertMessage, *alertTitle;
    
    if ([FBErrorUtility shouldNotifyUserForError:error])
    {
        alertTitle = @"Facebook error";
        alertMessage = [FBErrorUtility userMessageForError:error];
        
    }
    else if ([FBErrorUtility errorCategoryForError:error] == FBErrorCategoryAuthenticationReopenSession)
    {
        alertTitle = @"Session Error";
        alertMessage = @"Your current session is no longer valid. Please log in again.";
        
    }
    else if ([FBErrorUtility errorCategoryForError:error] == FBErrorCategoryUserCancelled)
    {
        NSLog(@"user cancelled login");
        
    }
    else
    {
        alertTitle  = @"Something went wrong";
        alertMessage = @"Please try again later.";
        NSLog(@"Unexpected error:%@", error);
    }
    
    if (alertMessage)
    {
        [[[UIAlertView alloc] initWithTitle:alertTitle
                                    message:alertMessage
                                   delegate:nil
                          cancelButtonTitle:@"OK"
                          otherButtonTitles:nil] show];
    }
}

 

- (IBAction)btnTap:(UIButton *)sender {
    
    [self.LoginView sendActionsForControlEvents: UIControlEventTouchUpInside];
    
}


@end

 

600 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-12281-1402912835.jpg
emresancaktar
22.08.2014 - 12:36

Ekranda eklemek istediğiniz yere, eklemek istediğiniz butonu ekleyin. Daha sonra butonun action methoduna Facebook'un logout methodunu çekin. Yazdığınızdan anlayıp cevap verebildiğim budur.

picture-3650-1421928561.jpg
anilsozeri
20.08.2014 - 03:13

Merhaba,

Soruyu anlamakta gerçekten zorluk çektim ama anladığım kadarıyla login olduktan sonra login butonu yerine logout butonu getirmek istiyorsunuz bunun için login işleminden sonra yönlendiğiniz ViewController'a bir adet buton ekleyip işlemi gerçekleştirebilirsiniz, soruyu daha da açıklayıcı bir şekilde yazarsanız ben veya bir başkası daha iyi yardımcı olacaktır diye düşünüyorum. Yazdığınız kodları da editörün kod düzenlemesi ile eklerseniz kodların okunması da kolay olacaktır.

İyi çalışmalar.