登录facebook ios 6后发现

时间:2013-03-02 19:25:29

标签: facebook ios6 segue

我正在使用Facebook SDK 3.1,我的登录系统还可以,登录后我想转到其他ViewController。我用segue和标识符连接两者,但现在我不知道如何实现它。

在此之后:

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];
}

但是在这里我没有索引路径来给(id)发送者。

2 个答案:

答案 0 :(得分:3)

Hey Fabio Cardoso有两种类型的Segues

  1. 触发较少的segue和
  2. 触发segue
  3. 在trigger less segue中,您只需直接从一个ViewController拖动到另一个ViewController。你没有提到你希望塞姬做什么行动。为此,您需要像上面一样创建segue标识符。并在您的代码中调用以下行。

    [self performSegueWithIdentifier:@“YOUR_IDENTIFIER”sender:self];

    在segue的第二种方式中,您可以直接按Ctrl +从按钮拖动到另一个ViewController。所以不需要为此编写任何代码。当您单击该按钮时,它将执行推送,模型或自定义segue您在故事板中选择的内容。

    在Source ViewController中调用以下方法执行的segue时。在这里,您可以编写自己的代码,将值从第一个ViewController传递给另一个或任何其他东西。

    - (void)prepareForSegue:(UIStoryboardSegue *)segue发件人:(id)发件人

    如果ViewController中有多个segue,那么将使用标识符。你可以使用像这样的标识符

    if([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
    

答案 1 :(得分:0)

我用这个简单的界限解决了我的问题:

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