xcode - 使用导航返回按钮放松 segue

标签 xcode storyboard segue

我已经观看了关于 Storyboard 实现的 Apple 演示视频,其中包含 unwind segues 部分,并使用主视图上的自定义按钮观看了演示。这很好用。

我也在这里看到了同样的事情的一个很好的例子,它也有效。 http://www.techotopia.com/index.php/Using_Xcode_Storyboarding_%28iOS_6%29#Unwinding_Storyboard_Segues

但是,我希望有一个从父级(带有主表单数据)到子级(带有高级设置选项)的正常推送序列,然后使用导航栏中的后退按钮而不是使用自定义按钮返回父 View Controller 演示中显示的 View 。然后,当按下父 Controller 上的进一步保存按钮时,父 Controller 会将所有内容保存到 API 服务器。

我似乎无法覆盖导航后退按钮以将其指向我的展开 segue 操作,并且由于后退按钮没有出现在 Storyboard 上,我无法将绿色退出按钮拖到它

我在 viewDidLoad 中尝试了这个来覆盖操作,但它没有用
[self.navigationItem.backBarButtonItem setAction:@selector(unwindSegueAction:)];

是否可以使用后退按钮来展开 push segue?

到目前为止,我最好的想法是从 viewDidLoad 方法中覆盖后退按钮,但这会删除有角度的后退按钮样式,并且似乎对一个简单问题的粗略破解

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"back" style:UIBarButtonItemStyleBordered target:self action:@selector(unwindSegue:)];

我知道有使用协议(protocol)和委托(delegate)的答案,但我有兴趣使用 Xcode4.5 unwind segue 方法

最佳答案

最后,我不需要展开 segue,因为我仍然可以通过遵循导航 Controller 来获得对父 Controller 方法的引用。

通过在 - (void)viewWillDisappear:(BOOL)animated 中执行以下操作,我能够获得引用。子 Controller 的方法

NSInteger currentVCIndex = [self.navigationController.viewControllers indexOfObject:self.navigationController.topViewController];

FirstViewController *parent = (FirstViewController *)[self.navigationController.viewControllers objectAtIndex:currentVCIndex];

parent.barcodeType = indexPath.row;

它将设置变量完美地传递回原始 Controller 。

我还在子 Controller 顶部添加了对父 Controller 的导入引用

关于xcode - 使用导航返回按钮放松 segue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13551778/

相关文章:

ios - SwiftUI View 不会在单独的 View 中更新

iOS 将 CollectionView 添加到 Storyboard UI 构建器中的另一个 View

ios - 使用performSegueWithIdentifier/编程方式快速更改 View

ios - 为什么 'present as popover' segue 覆盖了整个屏幕?

xcode - 如何修复与我的 NSCollectionView 相关的 'Prototype Segue' (Xcode 7.0 beta)

xcode - 目标依赖与链接二进制文件与库

ios - 无法为 UIMainStoryboardFile 'Main' 实例化默认 View Controller - 也许未设置指定的入口点?

iphone - Objective-C - for 循环中的未识别错​​误

objective-c - 有条件地跟随一个segue

objective-c - performSegue :withIdentifier: with popover style 后未调用 prepareForSegue