使用带有自定义按钮的主详细信息应用程序的 segue。

Posted

技术标签:

【中文标题】使用带有自定义按钮的主详细信息应用程序的 segue。【英文标题】:Using the segue from master detail application with custom button. 【发布时间】:2013-03-17 00:59:25 【问题描述】:

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

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

当用户点击“添加”按钮时,应该创建一个新对象,然后进入该对象的详细视图。我想,“嘿,为什么不使用标准的 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)。

关于哪里出了问题有什么想法吗?

【问题讨论】:

您是否尝试使用添加按钮将另一个项目添加到 tableview 并将新项目从 table view 转到详细视图? 【参考方案1】:

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

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

希望这会有所帮助 亚龙

【讨论】:

以上是关于使用带有自定义按钮的主详细信息应用程序的 segue。的主要内容,如果未能解决你的问题,请参考以下文章

iOS 自定义 Segue 不工作

关闭自定义警报视图并解除 segue 问题?

Push Segue 后更改回按钮标题

带有 segue 的 Xcode 6.1 按钮

详细信息披露按钮和 Segues

带有详细信息的 UITableView 清单(防止 Segue?)