使用主要详细信息应用程序中的segue和自定义按钮。

时间:2013-03-17 00:59:25

标签: objective-c ios6 uistoryboardsegue xcode-storyboard

所以,我有一个主细节应用程序。到目前为止,一个对象在启动时创建并添加到主列表中,详细视图也可以正常工作。

我想做的是让用户通过按下按钮将对象添加到主列表。我不需要新的视图,但我希望使用此部分的标准详细信息视图。

当用户点击“添加”按钮时,应创建一个新对象,然后进入该对象的详细视图。我想,“嘿,为什么不使用标准的segue呢?” 所以我在MasterView中添加了 Bar Button Item

这是来自MasterViewController.m的代码:

-(IBAction)addNewItem:(UIStoryboardSegue *)segue{

    if([[segue identifier] isEqualToString:@"showDetail"]){

        CoolItem *newItem;
        NSDate *today = [NSDate date];
        newItem = [[CoolItem alloc]initWithDate:today];

        [self.dataController addCoolItemWithItem:newItem];
        DetailViewController *detailViewController = [segue destinationViewController];

        detailViewController.coolItem = newItem;


    }
}

“showDetail”是主详细信息模板附带的标准segue的标识符。

结果:没什么!按钮点按时不调用该方法。

我已确保我的按钮已连接到此方法(但它确实显示为文档大纲中的展开segue)。

关于出了什么问题的任何想法?

1 个答案:

答案 0 :(得分:0)

我不确定出了什么问题,但我能够使用以下代码实现所需的功能:

-(void)viewDidload {
      ...
      self.navigationItem.rightBarButtonItem = 
     [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd                                                                                                     
                            target:self
                            action:@selector(Add:)];    
}


-(IBAction)Add:(id)sender 
{
    // Create the new item and set it as active
    ...

    [self performSegueWithIdentifier: @"SegueName" sender:self];
}

希望这会有所帮助 亚龙