- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图找出导航 Controller 的左边缘滑动和后退按钮行为之间的区别。我有一个错误,仅当您通过左边缘滑动导航返回时才会发生。如果您按下返回按钮,它会正常工作。没有进行任何自定义来启用或禁用后退导航或手势导航。
我发现关于这个主题的资源非常少,我只想更彻底地了解每个事件触发了哪些事件,以及它们在行为上的不同之处。
最佳答案
这个错误是否一直表现出来,或者当且仅当您开始左边缘滑动并取消它时它才会表现出来?我问的原因是我们过去编写的代码假定 viewWillAppear
之前的 VC 和 viewWillDisappear
当前一个总是在 viewDidAppear
之前和 viewDidDisappear
, 分别。但是,对于交互式转换,这不再适用,因为 viewWillAppear
/Disappear
将在您开始转换时调用,但对应的 viewDidAppear
/Disappear
如果取消了交互式过渡,则可能不会。事实上,在 WWDC 2013 上介绍这个概念时,主持人开玩笑说他们应该重命名 viewWillAppear
到“viewMightAppear
或 viewWillProbablyAppear
或 iReallyWishThisViewWouldAppear
”。
所以,看看你的viewWillAppear
和 viewWillDisappear
方法并确保你没有任何依赖于 View 实际出现和消失的东西,因为如果取消手势,你将看不到这些事件。
有关更多信息,请参阅 WWDC 2013 视频 Custom Transitions Using View Controllers .视频进行到一半多一点时讨论了交互式过渡。它讨论了如何实现您自己的交互式转换,但这些概念适用于导航 Controller 的内置左边缘滑动。
在标准的“后退”按钮过程中,从第二个 View Controller 弹出到第一个,事件顺序是典型的:
SecondViewController.viewWillDisappear
FirstViewController.viewWillAppear
SecondViewController.viewDidDisappear
FirstViewController.viewDidAppear
SecondViewController.viewWillDisappear
FirstViewController.viewWillAppear
SecondViewController.viewDidDisappear
和
FirstViewController.viewDidAppear
,您将看到以下事件:
FirstViewController.viewWillDisappear
FirstViewController.viewDidDisappear
SecondViewController.viewWillAppear
SecondViewController.viewDidAppear
viewWillDisappear
中进行一些清理工作。 ,请确保您只清理您在
viewWillAppear
中设置的内容.或者如果你在
viewDidAppear
中做任何事情,请确保在取消交互式转换后再次调用该方法时不会出现问题。如果没有有关您在这些与外观相关的方法中所做的事情的信息,就不可能说出您的情况到底出了什么问题。
关于ios - UINavigationController 左边缘滑动和后退按钮行为之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40030510/
我有几个由导航 Controller 控制的 View Controller 。 例如,viewController A 和 viewController B 都可以将 viewController
目前我在单独的 Storyboard中有一个导航 Controller ,它使用退出按钮。这个退出按钮应该返回到 rootViewController(那是在 mainstoryboard 中)这是一
我目前正在将我的应用程序迁移到 iOS 7 上,并且在新的导航 Controller /栏管理上已经卡了好几个小时了。 之前,当我们有导航 Controller 时,我们有这样的代码片段: UINav
我环顾四周,终究找不到用滑动手势替换 backbarbuttonitem 的方法。我想向左滑动并让应用恢复到之前的 View Controller 。澄清一下,我正在使用 UINavigationCo
我环顾四周,终究找不到用滑动手势替换 backbarbuttonitem 的方法。我想向左滑动并让应用恢复到之前的 View Controller 。澄清一下,我正在使用 UINavigationCo
我使用 320*44 图像自定义 NavigationBar backgroundImage。因此状态栏为黑色。这就是我想要的。但是,当我呈现此 navigationController 时,如您所知
我正面临以下代码的崩溃。场景是 这是我的应用委托(delegate)方法,我在其中使用 UINavigationController 加载 RTC_HomeVC。 - (BOOL)applicatio
目前我有一个使用 uinavigationcontroller 但仅在 Root View 中隐藏导航栏的应用程序,我想在某些应用程序中将此应用程序用作外部库并将整个应用程序作为一个菜单项推送。 但是
我有两个 View Controller ,ViewControllerA 和 ViewControllerB,嵌入在 UINavigationController 中。 ViewController
iOS 7 采用了一种新手势,在屏幕上从左到右滑 Action 为 UINavigationController 中返回按钮的快捷方式。 我的应用似乎没有免费采用这种行为。我需要做什么才能使这个手势可
我已经在这上面花了几个小时,但无法让它工作。希望有人能帮助我。 我有一个 UIPageViewController,当我在应用程序启动时将它添加到我的默认 View 时,它可以完美地工作。这就是我所做
我想为我的 UIToolbar 使用我自己的背景。 要使用 UINavigationBar 做到这一点,我刚刚使用了这个类别并覆盖了 drawRect 方法: @implementation
我正在展示一个 UINavigationController模态地,从 iOS 应用程序扩展中: UINavigationController *nav = [[UINavigationControl
我读到在 iOS 应用程序中有这样的结构是不好的。但是,如果应用程序有很多 UINavigationController 和 UITabBarController 怎么办?但是一个UINavigati
我们在 UISplitViewController 应用程序中有我们需要的特定行为。我们有以下 3 个 View 的层次结构 FormOneViewController - 在 MasterView
我试图将一个简单的 UIToolbar 放在模态呈现的 UINavigationController 的底部。在这个示例中,它应该包含两个按钮“取消”和“某事”。 ... UINavigationCo
我有一个 UITabBarController,其中包含一些选项卡。其中一个选项卡具有 UINavigationController 和 UITableViewController 作为 Root V
我的应用程序的整个导航系统都是围绕导航 Controller 构建的。我所有的风险投资公司都被插入和推出。我有一个从左侧出来的菜单系统“抽屉”,它是我的自定义导航 Controller 的一部分。在菜
我有一个 UINavagationController (NC),它显示“Items”数组的多个 UIViewController (VC) View ,并且我有一个 UINavigationCont
在我的 UISplitViewController ,主 View 是UINavigationController包含 UITableViewController .有时,当用户选择表中的项目时,我不
我是一名优秀的程序员,十分优秀!