2013-03-02 39 views
0

我正在使用Facebook SDK 3.1,我的登錄系統沒有問題,登錄後我想去其他ViewController。我連接了一個segue和標識符,但現在我不知道如何實現它。用Facebook登錄後認定ios 6

在這裏,在這之後:

if (appDelegate.session.isOpen) { 
    [self.buttonLoginLogout setTitle:@"Log out" forState:UIControlStateNormal];   
    [self.textNoteOrLink setText:[NSString stringWithFormat:@"https://graph.facebook.com/me/friends?access_token=%@", appDelegate.session.accessTokenData.accessToken]]; 
} 

在我TableViewCell例子中,我使用它是這樣的:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { 
    if ([segue.identifier isEqualToString:@"test"]) { 
     NSIndexPath *selectedIndexPath = self.tableView.indexPathForSelectedRow; 
     RestauranteDetalhesViewController *destViewController = segue.destinationViewController; 
     destViewController.idRest =[bd.idrestauracao objectAtIndex:selectedIndexPath.row]; 
} 

但在這裏我沒有indexpath給予的(ID )發件人。

回答

3

嘿法比奧·卡多索有兩種類型塞格斯

  1. 觸發少賽格瑞和
  2. 觸發賽格瑞

的在觸發較少時,您可以直接從一個ViewController拖到另一個ViewController。你不會提到你想要完成Segue的行動。要做到這一點,你需要像上面那樣創建一個segue標識符。並在代碼中調用下面的行。

[self performSegueWithIdentifier:@「YOUR_IDENTIFIER」sender:self];

在第二種方式你可以直接Ctrl +拖動按鈕到另一個ViewController。所以不需要爲此編寫任何代碼。當你點擊那個按鈕時,它會執行Push,Model或自定義選擇你在故事板中選擇的任何內容。

如果在源視圖控制器中調用如果執行下面的方法,則執行segue。在這裏,您可以編寫自己的代碼,將值從第一個ViewController傳遞到另一個或其他任何東西。

- (空)prepareForSegue:(UIStoryboardSegue *)賽格瑞發件人:(ID)發送

如果是從你的ViewController多個賽格瑞比標識將使用的。您可以使用標識符這樣

如果([segue.identifier isEqualToString:@ 「YOUR_IDENTIFIER」])

注:Segue公司只有一個辦法,因此,如果您從第一的ViewController SEGUE到另一個如果你想回來(在模型動作的情況下),你必須編寫第二個ViewController的委託方法,並點擊按鈕動作調用

**FirstViewController.h** 

@interface FirstViewController : UIViewController <SecondViewControllerDelegate> 
{ 

} 

- (IBAction) buttonTapped:(id)sender; 

**FirstViewController.m** 

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"YOUR_IDENTIFIER"]) 
    { 
     SecondViewController *svc_obj = segue.destinationViewController; 
     svc_obj.delegate = self; 
    } 
} 

- (void) buttonTapped:(id)sender 
{ 
    [self performSegueWithIdentifier:@"YOUR_IDENTIFIER" sender:self]; 
} 

- (void) secondViewControllerDidCancel: (SecondViewController *) controller 
{ 
    [controller dismissViewControllerAnimated:YES completion:nil]; 
} 

**SecondViewController.h** 

@class SecondViewController; 

@protocol SecondViewControllerDelegate <NSObject> 

- (void) secondViewControllerDidCancel: (SecondViewController *) controller; 

@end 

@interface SecondViewController : UIViewController 
{ 

} 
@property (nonatomic, weak) id <SecondViewControllerDelegate> delegate; 

- (IBAction)cancelButtonTapped:(id)sender; 

**SecondViewController.m** 

- (IBAction)cancelButtonTapped:(id)sender 
{ 
    [self.delegate secondViewControllerDidCancel:self]; 
} 

@end 
+0

完美答案! +1 – 2013-03-06 09:00:43

0

我解決我的問題,這個簡單的一行:

[self performSegueWithIdentifier:@"begin" sender:self];