问题标签 [unwind-segue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1940 浏览

objective-c - ios8 unwind segue 不适用于 UINavigationBarController 和 UITabBarController(在 iOS 8.1 中修复)

我刚刚开始使用 Xcode 6(beta 6)在 iOS8 上测试我的 iOS7 应用程序。我知道 iOS 8 已弃用“推送”和“模态”segue,但我很高兴发现我所有的 segue 都有效……除了一个。

我构建了一个演示应用程序,以表明如果您的应用程序使用带有 UINavigationController 的 UITabBarController,从模态转场展开似乎会被破坏。(我看到另一个 unwind segue 帖子,但它使用的是 swift,而我的演示应用程序使用的是 obj-c)。

这是我看到的更具体的内容: [UITabBarContoller] -> [UINavigationController] -> [SomeViewController] -(Modal Segue)-> [This ViewController Cannot Unwind]

有趣的是,如果你做另一个模态序列,你可以展开: [UITabBarContoller] -> [UINavigationController] -> [SomeViewController] -(Modal Segue1)-> [This ViewController Cannot Unwind] -(Modal Segue2)-> [This ViewController CAN unwind ]

我还发现,如果我删除 UITabBarController 或 UINavigationController,我可以放松,但我不打算更改我的整个应用程序 UI 架构:)

据我所见,根视图控制器从未收到对 canPerformUnwindSegueAction:fromViewController:withSender: 的调用,这在 iOS7 中是这样做的。

我的问题:我应该尝试以不同的方式让我的 unwind segue 发挥作用吗?

谢谢阅读。

演示代码在这里:https ://github.com/nmsasaki/UnwindDemo

更新

这个问题似乎已经被 iOS8.1 修复了。(iOS 8.0 创建 UINavigationController 的自定义子类的工作继续有效。)

0 投票
0 回答
119 浏览

ios - 在不属于同一个 UINavigationController 的两个 UIViewController 之间展开 segue

我目前正在为 iPhone 和 iPad 开发一个 iOS 应用程序。我正在尝试使用展开 segues 从 UIViewController 返回到其他,但在同一个 UINavigationController 中没有。(从 FilesPeriodViewController 到 FilesBatchViewController)我的故事板截图

是否可以为不是来自同一个 UINavigationController 的两个 UIViewController 进行展开转场?

我正在尝试使用正常的展开 segue,但它不起作用,它抛出的错误是 UIViewController 不属于同一个 UINavigationController

0 投票
2 回答
264 浏览

ios - 如何以编程方式放松到 2 个不同的 VC

如果我们有一个你有三个 ViewController 的情况。黄色,绿色和白色之一。

你可以通过黄色和绿色的一个来得到白色的。请参阅图片以获取更多说明:

在此处输入图像描述

当我从黄色转为白色时,我准备转场并将 NSUinteger jimmy_hendrix 值设置为 0;

当我从绿色转为白色时,我准备转场并将 NSUinteger jimmy_hendrix 值设置为 1;

在白色的 VC 中,我创建了 IBAction 并将一个 BACK 按钮连接到它。在那里,根据我想要解除我在白色 VC 中结束的转场的价值。

这是我使用的代码:

但是,我得到一个例外:

为了清楚起见,我从来没有 ctrl + 从 BACK 按钮拖动退出然后选择 unwind segue 方法,因为我想要执行两个展开,基于我使用的 VC 和哪个 segue。

有什么解决方案?如何首先回到我用来到达目的地的任何 ViewvController?

重要提示:我知道我可以制作新的 segues,从白色到黄色和绿色并调用它们。但我不想那样……我不想制作新的转场,我想以编程方式展开现有的转场。

编辑:我忘了提到确实我用绿色和黄色 VC 制作了展开方法

0 投票
0 回答
158 浏览

ios - 从 UIImagePickerController 手动展开 segue 失败,并显示“Receiver has no segue with identifier”

我几乎已经完成了将大型通用应用程序转换为使用 Storyboards 的工作,但有一个问题困扰着我。我为自定义 UIImagePickerController 创建了一个场景,但我不知道如何从中放松。我知道我可以关闭控制器,但我想使用展开过程将图像传递回原始源视图控制器。当我尝试手动展开时,出现以下异常:

我认为崩溃日志显示调用

[UIViewController shouldPerformSegueWithIdentifier:sender:]

但是如果我在 MyImagePickerController 类中实现该方法,它就不会被调用。此外,有趣的是,在崩溃时,视图控制器的_storyboardSequeTemplates私有属性为 nil,但它们在 IB 中直观地存在。

我已经将一个演示项目上传到 Github,它演示了这个错误以及我在项目其他地方成功使用的几个展开 segue 模式,以在视图控制器之间进行通信。是否可以使用 UIImagePickerController 中的手动展开 segue 而不是使用旧的委托模式来返回图像?如果是这样,怎么做?谢谢。

0 投票
1 回答
41 浏览

ios - iOS:当条件无效时如何保持当前视图,即使按下完成按钮

我有一个嵌入导航控制器的视图控制器,用 Picker View 实现了一些简单的功能。

我还有一个使用 unwind segue 连接到 Exit 的条形按钮。当用户按下“完成”按钮时,它将返回到第一个视图控制器,这很好用。

我的问题是,如果用户没有从选择器视图中选择任何东西,并且一旦按下“完成”按钮,它就会返回到第一个视图控制器。我不希望这发生。 视图控制器 我的期望是:如果用户没有从选择器视图中选择任何东西,尽管用户仍然按下“完成”按钮,它应该留在当前视图控制器。

有谁知道如何实现它?谢谢!!

0 投票
1 回答
198 浏览

objective-c - 故事板 - 弹出到视图控制器然后推送导致多次推送

在目标 C/iOS 中;

我们有一个类似的过程(在 xcode 故事板中设置);

Menu View Controller -> Enter in a code -> Process/Validate -> Present a Failed Code page

(->) 箭头表示push情节提要中的 segue 设置

当处于失败状态时,我想弹出到Enter in a code视图控制器。

这让我回到了我想去的 VC。

除了现在当我在页面上按下提交时,Enter code它会再执行 3 或 4 次“推送”,而它应该只有 1 次。

我需要解除segue吗?我尝试清空导航视图控制器堆栈,甚至尝试摆脱它的最后一个活动视图控制器——这两个都返回一个空白或黑色的窗口视图框架。

为什么在导航堆栈中弹出视图控制器会影响我的视图控制器中的 segues,以至于每当我尝试执行某个push segue操作时,它都会尝试将多个视图控制器推送到堆栈上?

0 投票
1 回答
130 浏览

ios - UIWebView:使用没有按钮的展开segues将数据发送回前一个控制器

比如说,我有一个 UIWebview。如果我得到 404 的状态码,那么我想将一些数据返回给前一个视图控制器,以便它知道刷新网页列表。

我听说过unwind segues。但是,我在此找到的所有内容听起来都必须通过情节提要按钮来实现。

反正有没有在代码中执行展开转场。意思是如果我发现这个错误 - 然后为前一个视图控制器设置某种变量,以便它知道如何处理错误?

谢谢!

0 投票
0 回答
376 浏览

ios - 从 UITableViewCell 点击展开 Push Segue

当用户点击 UITableViewCell 时,我正在尝试展开推送转场,但主要问题是如果我无法在界面构建器中实际制作它,我该如何进行展开转场。我尝试从 Orange Viewcontroller 方块拖动到红色的 Exit 方块并命名该 segue 并尝试调用 [self performSegueWithID: -----] 等,但它什么也没做。

感谢你给与我的帮助!

0 投票
2 回答
189 浏览

ios - 从第二个视图控制器到第一个视图控制器 ios8

我有 4 个视图控制器。其中三个视图控制器连接到第四个,我称之为 Photo_Detail。那里的 segues 工作正常,但现在我必须让后退按钮转到某人来自的 VC。我怎样才能做到这一点?一项研究说要在 Photo_detail 中创建一个放松的转场,我做了什么,但没有成功。这是我尝试使用的代码:

提前感谢您的帮助!

0 投票
0 回答
116 浏览

ios - Change rootViewController from unwindSegue

I have a MenuViewController which is normally the rootviewcontroller. I use

to go back to this view controller from other view controllers. However, if the user launches the app by clicking on a local notification, the app shows OtherViewController. I do it like so:

The app opens at the expected OtherViewController, but then when I click the menu button that normally triggers the unwindSegue, I can't go back to MenuViewController. Any thoughts on how to fix this?

Edit: I use push segue to go from MenuViewController to OtherViewController.