1.在AppDelegate.m中:

2.在SecondViewController.h中:

3.在FirstViewController.m中:

4.在SecondViewController.m中:

5.最后,运行程序,发现问题:SecondViewController对象被FirstViewController对象的navigationController push后,

SecondViewController对象先按顺序依次调用执行其-test方法、-setWords:方法、test2方法、test3方法,

最后,SecondViewController对象的-viewDidLoad方法才被调用执行,

这致使-setWords:方法中的_label.text = _words;成为[nil对象 setText:_words],这就相当于没有执行,自然不能达到效果,

这是因为在SecondViewController对象中的-viewDidLoad方法中才开始创建该UILabel对象,所以,在此之前,_label始终为空对象(即nil对象)

6.问题总结:

B *b = [[B alloc] init];

[a.navigationController pushViewController:b animated:YES];

[b methodInB];

iOS7之前,这样写是没问题的, 调用流程:

依次是B中的-loadView -> -viewDidLoad -> -viewwillAppear -> -viewDidAppear -> 最后是-methodInB

从iOS7之后,调用流程变了:

[a.navigationController pushViewController:b animated:YES];之后,

B中最先被调用执行的是-methodInB -> -loadView -> -viewDidLoad -> -viewwillAppear -> -viewDidAppear

7.问题解决:

既然push之后的栈顶子控制器的-viewDidLoad方法被最后调用执行,那就去掉-setWords:方法中的_label.text = _words;

转而在-viewDidLoad方法中写上_label.text = _words;就可以成功赋值了!

pushViewController:animated:的问题的更多相关文章

  1. 关于使用 pushViewController: animated: 方法在下一个控制器中拿不到值的解决方法

    如下代码: // 加载一个tabbar控制器 houseMessageTabbarController *houseTabbar = [[houseMessageTabbarController al ...

  2. 实现pushViewController:animated:的不同页面转换特效

    1. 首先要明确的是,不使用pushViewController的默认动画,所以在调用这个函数时,要将animated设置为NO.2. 使用普通的来CATransition实现转换效果,代码如下:CA ...

  3. 解决UINavigationController在pushViewController时出现的"卡顿"问题

    进行开发中,遇到了个小问题: 在使用UINavigationController的-pushViewController:animated:执行入栈一个子控制器操作时(即最新栈顶子控制器),会出现推出 ...

  4. iOS pushViewController 和 presentViewController的区别 详解

    pushViewController 导航控制器入栈的方式切换页面presentViewController 模态切换的方式切换页面 1:用 UINavigationController 的时候用 p ...

  5. UINavigationController

    知识点: 1)UINavigationController 2)UINavigationBar 3)UINavigationItem 4)UIToolBar ===================== ...

  6. 你真的了解UINavigationController吗?

    一:首先查看一下关于UINavigationController的定义 NS_CLASS_AVAILABLE_IOS(2_0) @interface UINavigationController : ...

  7. iOS界面开发

    [转载] iOS界面开发 发布于:2014-07-29 11:49阅读数:13399 iOS 8 和 OS X 10.10 中一个被强调了多次的主题就是大一统,Apple 希望通过 Hand-off ...

  8. [BS-10] 统一设置app所有页面的“返回”按钮样式

    统一设置app所有页面的“返回”按钮样式 如果想统一设置app所有页面的“返回”按钮样式,首先自定义WZNavigationController类继承UINavigationController类,然 ...

  9. iOS开发 爱特开发技术bug总结

    #pragma mark 每天总结学习两小时  效率 和 每天学习 研究底层 多进去看看 // .................................................... ...

随机推荐

  1. C if 判断 else 否则

    #include <stdio.h> int main(int argc, char **argv) { //新建三个变量进行比较 int a,b,c; //输入三个变量的值scanf(& ...

  2. 【wx:if】小程序条件渲染的使用说明

    语法,以view为例: <view xw:if="{{条件}}">aaaa</view> <view xw:elif="{{条件}}&quo ...

  3. python简单循环生成器

    import time #循环生成器 def traversal_list(alist, i): while True: length = len(alist) i = i%(length) yiel ...

  4. 关于C#中如何使用wmi获得操作系统信息?

    最近项目中用到了windows server 2012操作系统中的存储池和ISCSI Disk的技术.前期,我们整个操作都是用power shell脚本去实现了.带来了不方便,后期要使用wmi API ...

  5. 2.hadoop基本配置,本地模式,伪分布式搭建

    2. Hadoop三种集群方式 1. 三种集群方式 本地模式 hdfs dfs -ls / 不需要启动任何进程 伪分布式 所有进程跑在一个机器上 完全分布式 每个机器运行不同的进程 2. 服务器基本配 ...

  6. Appium基础环境搭建(windows)---基于python

    1  JDK安装 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 安装注意:安装 ...

  7. c# 生成的没用文件

    1.pdb 2.vhost 3.application 4.含有更新功能(更新文件夹)

  8. 软工冲刺-Alpha 冲刺 (3/10)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 很胖,刚学,照猫画虎做了登录与注册界面. 展示GitHub ...

  9. CentOS基础命令

    为网卡配置静态IP地址建议通过交互式界面nmtui进行配置 firewalld和iptablesCentOS7使用firewald取代原来的iptables,但实际上底层还是iptables,在上层加 ...

  10. Delphi开发的一些技巧

    [Delphi]Delphi开发的一些技巧 一.提高查询效率先进行准备查询操作: CustomerQuery.Close; if not (CustomerQuery.Prepared) then - ...