相关疑难解决方法(0)

iOS App冻结在PushViewController上

我的导航控制器间歇性地在推动时冻结.它似乎将新的视图控制器添加到堆栈中,但动画永远不会发生.我还有两个其他容器在屏幕上保存视图控制器,我可以在导航控制器冻结后很好地与它们进行交互.真正有趣的是,如果我尝试将另一个视图控制器推到导航控制器的堆栈上,我注意到堆栈顶部有一个额外的视图控制器(我最初推动的视图控制器冻结了导航控制器).所以,如果我在主屏幕上(我们将其称为VC-Home)并尝试推送新视图(VC-1)并冻结,那么我尝试推送新视图(VC-2),这是我在推送之前在当前堆栈中看到的内容:

{ [VC-Home, VC-1] }

并且在调用pushViewController之后,它保持不变; VC-2未添加到堆栈中.

据我所知,导航控制器通过在动画开始之前使前一个视图控制器处于非活动状态来启动动画,但随后动画永远不会发生,导航控制器处于冻结状态.

我正在通过调用从故事板创建新的视图控制器, UIStoryboard(name: "Main", bundle: nil).instantiateViewControllerWithIdentifier("ViewController")所以我认为那里没有任何问题.我也没有在导航栏上覆盖pushViewController.关于我的应用程序的一些独特的东西是,它是非常高解析度图像重(使用SDWebImage来管理),我总是在屏幕上有三个容器在一次(一个导航控制器,用于搜索一个视图控制器,以及一个互动排水沟/侧面/滑出菜单).

CPU使用率低且内存使用率正常(发生冻结时设备稳定在60-70MB左右).

是否有任何想法可能导致这个或任何调试技巧可以帮助我发现真正的问题?

更新

UINavigationController没有唯一的代码,因为我只是推动使用pushViewController().这是调用它的代码:

func didSelectItem(profile: SimpleProfile) {
     let vc = UIStoryboard.profileViewController()
     vc.profile = profile
     navigationController?.pushViewController(vc, animated: true)
}
Run Code Online (Sandbox Code Playgroud)

我推送的ViewController在viewDidLoad中有以下代码:

override func viewDidLoad() {
    super.viewDidLoad()
    button.roundView()

    if let type = profile?.profileType {
        //load multiple view controllers into a view pager based on type 
        let viewControllers = ProfileTypeTabAdapter.produceViewControllersBasedOnType(type)
        loadViewPagerViews(viewControllers)

        let topInset = headerView.bounds.height + tabScrollView.contentSize.height
        if let viewPager = viewPager {
            for view in viewPager.views {
                if …
Run Code Online (Sandbox Code Playgroud)

uinavigationcontroller ios sdwebimage swift

23
推荐指数
2
解决办法
5492
查看次数

当推或弹时,应用程序冻结在ios 8上

我的应用程序有一个大问题.主要在iOS 8上,因为我们还没有在其他iOS版本上找到它.

当推送到新的视图控制器或弹出到前一个视图控制器时,它有时会冻结.但奇怪的是,如果你按下主页按钮并从后台启动应用程序.它会运行一点.在这里,我的意思是新推出或弹出的视图控制器出现,但你仍然无法推或弹出新的视图控制器.


更新: 应用程序冻结时内存,CPU和磁盘使用情况都正常.

freeze ios ios8

8
推荐指数
1
解决办法
1177
查看次数

如何在pop UIViewController中删除UIParallaxDimmingView?

我有一个UIViewController vc1,它是在UIViewController vc2之后推送的。vc1和vc2都是透明背景的

问题:当我尝试使用交互式弹出手势(从边缘平移)弹出vc2UIParallaxDimmingView时,在我的视图堆栈中显得很神秘,这使我的堆栈变暗(在透明视图控制器下有一个背景图像)。一旦我松开手指、取消或完成转换,它就会再次变得清晰/透明。

我如何禁用/删除UIParallaxDimmingView或将其设置为透明?

iphone objective-c uiviewcontroller ios

5
推荐指数
1
解决办法
1177
查看次数