作者whitefur (白毛)
看板MacDev
标题Re: [问题] 呼叫其他.h档元件问题
时间Thu Feb 13 11:37:20 2014
※ 引述《chk95 (真男人魂)》之铭言:
: 主要是在b.m档里面呼叫a.h档的原件做更新资料的动作
: 程式大致如下
: NewsController* newController =
: [self.storyboard instantiateViewControllerWithIdentifier:@"NewsPages"];
: [self.navigationController pushViewController:newController animated:YES];
: newController.title = @"abcd";
: newController.newsPage_textView.text=@"oh ya";
你用lldb设breakpoint在这一行看看
newsPage_textView一定是nil
因为这个时候newController里的view还没load进来
此时newController只有init而已
因为pushViewController後并非马上显示
而是等到runloop结束後
才会统一更新画面
此时才会去access controller的view
其subview才会通通被load进来
你可以做个实验
在newController.newsPage_textView.text=@"oh ya";之前
加上一行newController.view;
这样就可以抓到newsPage_textView了
所以一般的做法
要等到viewDidLoad才抓得到news_textView
建议你把view controller的文件读过一次
才会了解iOS的view是如何运作的
https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ViewLoadingandUnloading/ViewLoadingandUnloading.html
懒得读的话直接看Figure4-1那张图
: 在xcode尚未更新为5.02时,执行这个程式都可顺利改写title以及newsPage_textView
: 的资料并秀出,但xcode更新後再次执行此专案才发现title顺利改写了
: 但newsPage_textView却无法更新资料
: storyboard id也有做定义
: 在a.m档执行newsPage_textView改写资料也可以顺利改写
: 唯独b.m呼叫它时要改写却不行,因之前xcode更新前执行专案都正常
: 所以小弟实在是不知道问题出在哪边
: 是否有大大能解救一下愚昧的小弟呢??
: 实在是感激不尽
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.116.75
※ 编辑: whitefur 来自: 118.160.116.75 (02/13 12:11)
1F:推 chk95:太感激大大的资讯了,看来基本功还是没搞好,看来要专心k一 02/13 12:23
2F:→ chk95:下viewcontroller的运行流程,真的是太感激您了QQ 02/13 12:24