iOS 开发过程中常出现的一些错误总结

iOS 开发过程中常出现的一些错误总结

1、两个视图控制器之间的跳转

(1)跳转:[self presentModalViewController:control animated:YES];

返回:[self dismissModalViewControllerAnimated:YES];

(2)

跳转:[self.navigationController  pushViewController:subTableViewController animated:YES];

返回:[self.navigationController popViewControllerAnimated:YES];

2、【ios报错】reason:
‘Pushing anavigation controller is not supporter  

reason: ‘Pushing a navigation controller is not supported‘

报上面的错误,原因是:

大家知道,可以将ViewControllerpush到一个 NavigationController中。就像是入栈操作!

将一个NavigationController再次push到NavigationController中时,报错,出現了

reason: ‘Pushing a navigation controller isnot supported‘

的错误。应该是,NavigationController不支持push进來的对象是NavigationController。将NavigationController改为viewController

3、ios 中UITableViewCell调用pushViewController:没反应(即页面视图控制器之间不能进行跳转)

总结一下使用UINavigationController遇到的一些问题:

(1)、self.navigationController==nil

(2)、[self.navigationControllerpushViewController: xxxController animate:yes]后没有back按钮;

4、Warning:Attempt to present on whose view is not in the window hierarchy!

 Warning: Attempt to present on whose view is not in thewindow hierarchy!

等等这样类似的提示,只要里面提示有 windowhierarchy,都是view hierarchy的理解不到位导致的。

上面的问题都是在一个controller的view还没加到window上的时候又取present另外一个controller,这就相当于在盖楼,2楼还没盖完,直接去盖3楼了,这样肯定是不行。

遇到上面的问题 最直接的解决方法就是在controller的viewDidAppear里面去调用present。这样可以确保view hierarchy的层次结构不乱。

http://blog.csdn.net/sbvfhp/article/details/19826221

5、Presentingview controllers on detached view controllers is discouraged。

把[self.rootViewControllerpresentViewController:controller animated:YES completion:nil];

改为[self.view.Window.rootViewControllerpresentViewController:controller animated:YES completion:nil];

 

时间: 2024-10-09 17:01:16

iOS 开发过程中常出现的一些错误总结的相关文章

iOS开发过程中使用Core Data应避免的十个错误

原文出处: informit   译文出处:cocoachina Core Data是苹果针对Mac和iOS平台开发的一个框架,主要用来储存数据.对很多开发者来说,Core Data比较容易入手,但很难精通,如果没有正确的学习方法,你将很难真正理解它,更不用说精通了.很多开发者常常在这方面犯一些错误,而这篇文章列出了开发者在iOS开发过程中使用Core Data常见的一些错误,并对如何避免这些错误进行了分析.  1.不了解关键术语 对于iOS开发者来说,会使用Core Data是一项必备技能.

浅谈iOS开发过程中的Core Location &Map Kit

两个月前,抱着对iOS开发的兴趣开始接触苹果设备的开发,开始接触object -C,以后用OC来代替,本人新人一枚,以后会经常写一些东西给大家分享,有做的不到位的,请大家多多包涵.今天是我发表的第一篇博客.有什么错误的或者是写的不到位的情况.请大家指正,大家共同进步.今天呢我来介绍一些关于iOS开发过程中的地图类. OC是面向对象的语言,和我们接触的C++,JAVA是一样的.在OC中除了基本的数据类型外,其他的基本上是通过对象来调用的.言归正传,iOS开发过程中,添加地图首先用到的主要的类和数据

【三分钟视频教程】iOS开发中 Xcode 报 apple-o linker 错误的#解决方案#

[三分钟视频教程]iOS开发中 Xcode 报 apple-o linker 错误的#解决方案# [三分钟视频教程]iOS开发中 Xcode 报 apple-o linker 错误的#解决方案#,布布扣,bubuko.com

iOS开发过程中,是用Storyboard/xib做界面,还是用代码来写界面,还是混合使用

以下是个人观点,非喜勿喷 关于iOS 开发过程中,是用Sb/xib 做界面 还是代码写界面,一直是讨论不断 各自成帮结派, 拖拉派.代码派.中间派 1. 拖拉派 ,Storyboard/xib 使用者, 像是海贼王里的能力者,开发快.Auto Layout .结构清晰,直观,一目了然 (个人觉得,小项目如此,超过10个界面以上,界面关系在复杂的话,看起来真是一团糟),能力者是有缺点的不会游泳, 同样Storyboard/xib 同样有它的缺点:(以下摘自) a). 所有的ViewControll

iOS开发过程中 xcode文件与Finder中文件保持一致 + 支付宝集成出错

目录 环境 前言 1.使用 Gem 安装 synx 2.直接在终端 Terminal 中开始使用 3.在使用的时候还可以加参数来实现不同的功能 4.解决项目中出现的一些 error 环境 OS X 10.11.1Xcode 7.1日期:2015/10/30 前言 最近公司项目要从 SVN 转到 Git,由于公司项目原先是由外包在2个月内赶工出来的,所以很多地方都不符合规范,就比如这次的重点——目录规范,外包的哥们的项目目录结构还算清晰,但在 Finder 中的目录结构就惨不忍睹了.这次的主角是 

iOS开发过程中的小技巧

转载自:http://blog.csdn.net/a451493485/article/details/8598839 iphone程序中实现截屏的一种方法在iphone程序中实现截屏的一种方法: //导入头文件#import QuartzCore/QuartzCore.h//将整个self.view大小的图层形式创建一张图片image UIGraphicsBeginImageContext(self.view.bounds.size):[self.view.layer renderInCont

iOS开发过程中的一些调试技巧

前言 在开发中一定需要到调试跟踪,但是很多开发者虽然做过很多的项目,但是未必了解开发中有哪些调试命令可以帮助我们开发者更快更好地定位到问题所在. 本篇文章主要是讲解在开发中如何利用LLDB来Debug.首先会讲一些基础知识,主要是帮助新手们学习如何去调试.对于一些比较高级的操作,不会也没有关系,但是如果能够掌握得了的话,会更方便更快速地查找问题. 初步认识LLDB LLDB是XCode内置的为我们开发者提供的调试工具.至于还不懂什么是调试的,百度一下概念吧,笔者也不知如何描述.看看下图吧,应该就

ios开发过程中屏幕方向判断的问题

判断屏幕的方法有很多着及仅提供几个我个人认为好用的方案 Landscape 竖屏 Portrait 横屏 最有效的方法是: 在willRotateToInterfaceOrientation:duration: 方法中将方向存储起来: DrviceOrientation = toInterfaceOrientation; 然后在别的方法中使用相应的屏幕的方向 方法一: 直接获取设备的方法:self.interfaceOrientation(此方法已经过期) 方法二: 通过下面的方法: UIDev

iOS开发过程中,NSLog宏定义

在项目开发的过程中,经常遇到要在调试的时候打印log,但是上线或是release 的时候不需要去显示log 的情况,此时你辛辛苦苦写了那么多的log,你要么就手动注释掉,要么就是设一个开关变量,企图用这个总开关开启.其实可以充分利用宏定义进行设置. 步骤比较简单,只需要 在ProjectName_Prefix.pch 中追加你对应的宏定义,不用import 就可以直接使用了. 宏定义写法如下: [plain] view plaincopy #ifdef DEBUG #define LOG(...