- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
UIButton *btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn setFrame:CGRectMake(, , , )];
[btn setTitle:@"Show ViewController2" forState:UIControlStateNormal];
[btn addTarget:self action:@selector(showView2:) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn];
} -(void)showView2:(UIButton *)sender
{
TPViewController2 *vc2 = [[TPViewController2 alloc] init];
[self.view addSubview:vc2.view]; // vc2里的btn事件会报错
}

加一行代码就不报错了。

-(void)showView2:(UIButton *)sender
{
TPViewController2 *vc2 = [[TPViewController2 alloc] init];
[self.view addSubview:vc2.view];
[self addChildViewController:vc2];
}

或者把vc2用@property的方式声明成属性也行。

总结下:

问:定义成第一个的@property属性,为什么就可以执行了?
答:作为属性创建的,系统会自动创建加载,而作为子view,就要自己加载。

问:我们应该用@property好还是用addchildViewController好。
答:看具体情况,没有谁好谁不好,看你要实现什么功能,比如:你的vc2如果是模板,那只能用addchildViewController,因为你不知道有多少个Vc2要创建。但是用属性,也有很多好处,可以直接使用,方便。

还是要把概念用法,你要是了解属性的用法,肯定不会怀疑属性的问题,很明显应该和加载有关,你在vc2的几个方法里面打个log就知道的,通过addsubview的方式,有很多VC的方法是不走的,说明VC没加载进来,这时候用VC的方法,那还不crash啊。addchildViewController其实就是让VC2加载进来,并且保持对象存在。

建议你有时间可以看看常用对象的头文件,里面很多方法,有的常用,有的不常用,说不定什么时候就用到了。

[self.view addSubview:vc2.view]程序崩溃的解决办法的更多相关文章

  1. Android学习笔记(5)----启动 Theme.Dialog 主题的Activity时程序崩溃的解决办法

    新建了一个Android Studio工程,在MainActivity的主界面中添加了两个按钮,点击其中一个按钮用来启动 NormalActivity,点击另一按钮用来启动DialogActivity ...

  2. [转] IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法

    IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法 源文件:http://www.cnblogs.com/yuejin/p/3385584.html   ...

  3. IIS配置文件的XML格式不正确 applicationHost.config崩溃 恢复解决办法

    当打开IIS管理器,或配置网站时提示错误:配置文件的XML格式不正确 且是applicationHost.config的问题,那么肯定是applicationHost.config被破坏,IIS就崩溃 ...

  4. [异常解决] 安卓6.0权限问题导致老蓝牙程序出现异常解决办法:Need ACCESS_COARSE_LOCATION or ACCESS_FINE_LOCATION permission...

    一.问题: 之前写的一款安卓4.4的应用程序,用来连接蓝牙BLE,而现在拿出来用新的AS编译(此时SDK为6.0,手机也是6.0)应用程序并不能搜索到蓝牙,查看log总是报权限错误: Need ACC ...

  5. Xcode 6.3.2 提交APP(Upload Archive)时崩溃的解决办法

    最近在上传为客户做的APP时,发现Xcode总会在进行到Upload Archive这一步时崩溃,导致APP上载不了.下面说说网上搜索到的几种解决办法. 方法一 亲测有效,很简单: 1.重新打开Xco ...

  6. adobe media encoder cc 2015在win10中打开崩溃的解决办法(该方法同样适用于adobe其他产品)

    今天就给大家讲讲adobe media encoder cc 2015启动的时候崩溃的问题,先来看看现象.就是这样了,然后我在网上找了很多办法,有的方法已经过时了,也或者因为现在新版本的adobe m ...

  7. 安装IIS之后运行aspx 显示“服务器应用程序不可用” 解决办法

    引起这个的原因大概是现安装了.Net Framework,后装的IIS导致.Net没有在IIS里注册.  另外,还有可能是ASPNET账户没有IIS所指定服务器目录的权限.在资源管理器中找到“工具-文 ...

  8. PLSQL Developer概念学习系列之登录连接Oracle时出现(没有登录) -PL / SQL Developer:ORA - 12541: TNS :无建听程序的错误解决办法(图文详解)

    不多说,直接上干货! 前期博客 PLSQL Developer概念学习系列之如何正确登录连接上Oracle(图文详解)   如用scott.scott_password进行登录,orcl是全局数据库 ...

  9. Selenium学习(三)Selenium总是崩溃的解决办法

    在使用selenium打开浏览器总是崩溃,最近查资料获得可行的解决办法: import sys from selenium import webdriver p = __import__('selen ...

随机推荐

  1. STL - 容器 - Forward List

    forward list是一个行为受限的list, 不能走回头路. 它只提供前向迭代器, 而不提供双向迭代器. eg: rbegin(), rend(), crbegin(), crend()这些都不 ...

  2. kafka delete topic

    Don't think it is supported yet. Take a look at this JIRA tracking Delete Topic. For delete manually ...

  3. UVa 10642 - Can You Solve It?

    题目:二维平面上的整数点.用路径链接起来(0,0)->(1.0)->(0.1)->(2,0)->.. 给你两点坐标.求两点间步长(在路径上的距离). 分析:简单题. 我们发现点 ...

  4. 有间距的表格布局 table布局

    1.先看有间距的布局效果: 2.少说多做,直接看代码(代码中有注释) <!DOCTYPE html> <html lang="zh"> <head&g ...

  5. 【Python】学习笔记六:循环

    循环是一个结构,导致一个程序要重复一定的次数 条件循环也一样,当条件变为假,循环结束 For循环 在python for循环遍历序列,如一个列表或一个字符. for循环语法:   ——for iter ...

  6. Redis学习(2)-redis安装

    安装redis需要先从官网下载的源码进行编译,编译依赖GCC环境,如果没有GCC环境,需要安装GCC. yum install gcc-c++ 步骤1:上传 将Windows下下载的压缩文件上传Lin ...

  7. Linux 系统sudo命令

    Linux系统中有许多的系统命令和服务为了安全性考虑,因此只有root超级用户才可以去使用.如果普通用户需要做此类操作,则可以使用su - 命令(减号(-)指完全切换到新的用户,即把环境变量信息也变更 ...

  8. Toast连续弹出的问题

    public class CommUtils { private static Toast toast = null; public static void showToast(int text) { ...

  9. 在MyEclipse中改动jsp页面的默认打开方式

    在JavaWeb项目中.当然有非常多jsp页面,可是我发现,双击打开jsp页面总是卡机.相对于打开其它java文件而言非常慢,感觉非常不舒服.MyEclipse中默认打开jsp页面是以可视化的形式展现 ...

  10. java操作hdfs到数据库或者缓存

    使用hadoop工具将数据分析出来以后,须要做入库处理或者存到缓存中.不然就没了意义 一下是使用javaAPI操作hdfs存入缓存的代码: <span style="font-fami ...