我有一个关于故事板 segues 的问题。平台为 iOS 6.1。目标设备是 iPhone。IDE 是 Xcode 4.5.2。我拥有的是 2 个 TableViewController,它们都有一个到同一个 ViewController 的 segue(segOne 和 segTwo)。期望的结果是,当用户导航到此 ViewController 时,他们将返回到原始 TableViewController。为此,我需要某种方法将原始 segue(或 TableViewController)的 id 传递给目标 ViewController。过去,我通过在 NavigationItem 中设置“后退”按钮来完成此操作,该按钮始终运行良好。但是,现在我想将后退按钮编码为单独的控件。
我知道要做到这一点,我需要在我已经完成的源 TableViewControllers 中设置“prepareForSegue”方法。我遇到的问题是在destinationViewControllers 中编写代码以编程方式识别两个segue 中的哪一个是源segue、segOne 或segTwo?在 Storyboard Seque 中,这两个 segue 都被标识为“segOne”和“segTwo”。两者都是风格“推送”segues,都是目标“当前”segues。除了 segue id 之外,每个 TableViewController 实现文件都是相同的。这是我的代码:
头文件:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender;
实现文件:
-(void)prepareForSegue:(UIStoryboardSegue*)segue sender:(id)sender
{
if([[segue identifier] isEqualToString:@"segOne"])
{
NSLog (@"TableViewController1: segue.identifier %@", segue.identifier);
NSLog (@"TableViewController1: self %@", self);
NSLog (@"TableViewController1: sender %@", (id)sender);
}
}
输出正是我所期望的。这是 forTableViewController1:
TableViewController1: segue.identifier segOne
TableViewController1: self <TableViewController1: 0x928eb70>
TableViewController1: sender <UITableViewCell: 0x927a3e0; frame = (0 22; 768 44); text = ' 1. birth month and year...'; autoresize = W; layer = <CALayer: 0x928d380>>
所以,我需要的是 ViewController 的代码,它标识两个 segue 中的哪一个, segOne 或 segTwo 是原始的 segue。我明白任何代码都需要进入目标 ViewController 的 viewDidAppear 方法。一旦我有了这个,在 ViewController 中编码 IBAction 以导航到原始 TableViewController 将是一件简单的事情。任何有关如何执行此操作的代码示例将不胜感激。谢谢...