`
wenxin2009
  • 浏览: 320509 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

自定义UINavigationController有时会有卡机情况!

    博客分类:
  • ios
 
阅读更多

    在项目中,由于导航上面左边和右边按钮需自定义,为全局通用,便自定义了UINavigationController导航。可在app使用过程中,有时总会出现卡机情况,但大部分时间不会出现,出现卡机后按home键退出后,再进入app就到了之前点击的界面。不闪退,也无异常。所以该问题找起来特别麻烦,没办法只能一个个去排除。之前不知是自定义导航问题,排除了好几个原回,开始以为是环信把主线程堵死了,后来发现不是。后面以为是列表加载图片导致,发现也不是。问过一些朋友,有的说的自动布局问题,有的说是手势问题.......

    经过跟之前版本对比,才锁定是自定义导航手势问题。在自定义导航中实现UIGestureRecognizerDelegate代理。实现gestureRecognizerShouldBegin方法。代码如下:

@interface ADNavigation2Controller : UINavigationController<UIGestureRecognizerDelegate,UINavigationControllerDelegate>

@end

 

//TODO 解决手势卡顿现象
- (BOOL) gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
    if (gestureRecognizer == self.interactivePopGestureRecognizer) {
        return (adBaseViewController == self.topViewController);
    }
    return YES;
}

 

分享到:
评论

相关推荐

    iOS 自定义UINavigationController和UITabBarController

    1. **自定义导航栏(NavigationBar)**:可以通过重写`UINavigationController`的`navigationBar`属性,或者创建自定义的`UINavigationBar`子类来改变导航栏的外观,例如颜色、字体、按钮样式等。 2. **自定义转场...

    UINavigationController自定义

    `UINavigationController`的默认行为包括平滑的滑动动画,它在切换页面时会从右侧滑入新的视图控制器。然而,开发者有时需要根据应用的需求来定制这些过渡动画,以实现更具特色的用户体验。自定义`...

    自定义UINavigationController切换动画

    源码BCMagicMoveTransition,自定义UINavigationController的切换动画。效果类似 Keynote 软件中 Magic Move 切换,可以用于任意两个 UIViewController 之间,只需要前后两个 ViewController 均继承 ...

    自定义UINavigationController的切换动画

    源码BCMagicTransition,自定义UINavigationController的切换动画,效果类似 Keynote 软件中 Magic Move 切换,可以用于任意两个 UIViewController 之间,只需指定两个VC中的相同元素即可。 测试环境:Xcode 6.2,...

    学习iOS自定义导航控制器UINavigationController

    在iOS开发中,自定义导航控制器UINavigationController是一个常见的需求,以满足特定的界面设计和交互体验。本篇文章将深入探讨如何实现自定义导航控制器,并基于提供的代码片段进行解析。 首先,自定义导航控制器...

    swift——自定义UITabBar,UITabBarController和UINavigationController

    自定义UITabBar,layoutSubviews重写UITabBarButton位置,重写则hitTest方法并监听按钮的点击 自定义的UITabBarController和UINavigationController

    PBNavigationController:自定义UINavigationController,支持透明和默认UINavigationBar的组合

    自定义UINavigationController ,支持透明和默认UINavigationBar组合。 截屏 安装 将PBNavigationController文件夹复制到您的项目中。 将导航控制器的类更改为PBNavigationController 。 设置 将...

    UINavigationController返回手势失效问题

    ## 问题描述 * 从iOS7开始,系统为UINavigationController提供了一个interactivePopGestureRecognizer用于右滑返回(pop),...* 自定义UINavigationController,重写interactivePopGestureRecognizer的delegate相关方法。

    UINavigationController Demo代码

    在iOS应用开发中,`UINavigationController`是苹果提供的一个核心组件,主要用于管理多个视图控制器的...在深入研究这个Demo时,建议同时查阅Apple官方文档,以便对`UINavigationController`的内部机制有更全面的理解。

    UINavigationController demo

    在这个"UINavigationController demo"中,我们将探讨如何简单地使用`UINavigationController`以及如何在其上添加自定义导航按钮,包括图片按钮和switch按钮。 首先,要创建一个`UINavigationController`实例,通常...

    UINavigationController

    2. **导航栏(NavigationBar)**:`UINavigationController`自带一个导航栏,显示在屏幕的顶部,通常包含一个返回按钮(如果有的话)、当前页面的标题以及可选的其他自定义按钮。 二、`UINavigationController`的...

    IOS7 UINavigationController滑动Demo

    这种行为是通过UINavigationController的内置手势识别器实现的,但默认情况下,并不适用于所有情况。有些开发者可能需要自定义这种滑动返回的行为,例如改变滑动的灵敏度、方向,或者在某些特定场景下禁用滑动返回。...

    UINavigationController详解与使用(二)页面切换和segmentedController

    在iOS开发中,`...此外,还可以自定义`UINavigationController`的过渡动画,通过实现`UINavigationControllerDelegate`的`animationControllerForOperation:fromViewController:toViewController:`和`...

    UITabBarController和UINavigationController混用

    这通常发生在使用 `UINavigationController` 时,例如在某个页面上滑动到底部时,为了提供更好的用户体验,我们可能会选择隐藏 `tabBar`。这可以通过以下方法实现: ```swift // 隐藏 tabBar tabBarController....

    iOS 使用UINavigationController进行页面间跳转

    默认情况下,`UINavigationController`会显示一个导航栏,包含返回按钮和其他可定制的项目。导航栏上的按钮和标题可以随着内容的变化而变化,这使得用户可以清晰地了解当前所处的层级。 在实际使用中,我们通常在`...

    UINavigationController+UITabBarController框架

    我们写iOS项目的时候,基本都是一个UINavigationController套一个UITabBarController的形式,就是上面一个导航栏,下面几个按钮的工具条的形式。我写了几个应用,发现如果每次都重新写的话完全就是浪费精力和时间,...

    页面跳转 UITabBarController+UINavigationController+UIViewController

    `UITabBarController`用于实现底部标签栏切换不同功能模块,`UINavigationController`则管理着一个堆栈式的视图控制器序列,支持前进和后退操作,而`UIViewController`是所有自定义视图控制器的基础类,承载着具体的...

    UINavigationController 显示隐藏

    `UINavigationController`有一个默认的导航栏,可以显示标题、返回按钮等。你可以通过以下方式控制它的显示: ```swift navigationController.navigationBar.isHidden = true // 隐藏导航栏 ...

Global site tag (gtag.js) - Google Analytics