- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
请耐心等待,我仍在学习 Cocoa Touch。其他 -viewDidLoad not being called 问题与我的问题无关,我进行了搜索。
我有 FooViewController
,一个 UIViewController
子类。 FooViewController.xib 的文件所有者设置为 FooViewController。此外,我还有 Main
,它的 App Delegate 是 MyApplication
,它的 File's Owner 是 UIApplication
。我的主要 Nib 设置为 Main。
我能够使 View 出现在屏幕上,使用这个流程(为简洁起见,代码被剪掉):
UIWindow *main;
-(void)applicationDidFinishLaunching:(UIApplication*)application {
[self showFooViewController];
[main makeKeyAndVisible];
}
-(void)showFooViewController {
fooViewController = [[FooViewController alloc] init];
if(![[NSBundle mainBundle] loadNibNamed:@"FooViewController" owner:fooViewController options:nil]) {
DebugF(@"Failed to load FooViewController");
return;
}
// Add the view and put it in place
UIView *view = [fooViewController view];
CGRect cur = [view frame];
cur.origin = CGPointMake(0.0f, 20.0f);
[view setFrame:cur];
[main addSubview:[fooViewController view]];
}
但是,此消息未发送到 FooViewController
:
- (void) viewDidLoad {
DebugF(@"Hello!");
}
gdb 的输出中完全没有声音。
我看过其他在 IB 文档 View 中显示实例等的 Cocoa 教程,但我没有在我的文档中看到这些选项。我应该在 Nib 中实例化 fooViewController 吗?我错过了连接吗?在 FooViewController.xib 中,文件的所有者 View 连接到 Nib 中的 View 。
我确信这是一个简单的解决方案,但我走错了路。住手!
最佳答案
我没有找到支持以下内容的文档,但这是我通过实验/经验推断的:
viewDidLoad
方法应该在 loadView
被调用后立即被调用,并且由调用 loadView
的人来提供额外的调用viewDidLoad
.
在某些情况下,SDK 会为您处理此行为。假设您有一个名为 MyViewController
的 UIViewController
子类;然后:
loadView
之前访问 myViewController.view
,那么父类(super class)访问器足够智能,可以为您调用 loadView
,并且 viewDidLoad
紧随其后。因此,如果您的代码如下所示:
MyViewController *myViewController = [[MyViewController alloc] init];
[superView addSubview:myViewController.view]; // Calls viewDidLoad.
然后 loadView
和 viewDidLoad
都将代表您调用。
但是,如果您的代码如下所示:
MyViewController *myViewController = [[MyViewController alloc] init];
[myViewController loadView];
[superView addSubview:myViewController.view]; // Doesn't call viewDidLoad.
然后 view
getter 可以看到您已经加载了 View ,并且它假设您也调用了 viewDidLoad
- 所以它不会调用任何一个。具有讽刺意味的是,此处的额外函数调用阻止了 viewDidLoad
被调用。
关于iphone - -viewDidLoad 未在子类 UIViewController 中调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479576/
我正在学习 objective-c 教程,并注意到 viewDidLoad 中的代码放在 super viewDidLoad 下,而不是第一次调用 viewDidLoad。 代码放在viewDidLo
在Apple的scrollView示例中,他们没有这样称呼。我一直认为这是必须的。我为什么要这样调用它? 最佳答案 如果您要重写该方法,您仍然应该在 super 中调用该方法。即使父类(super c
这个问题已经有答案了: Why/when do we have to call super.ViewDidLoad? (6 个回答) 已关闭 4 年前。 override func viewDidLo
大家好,我有一个双 View Controller 。 我的 firstviewcontroller 有一个按钮,这个按钮发送 NSNotification,secontviewController
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Do I always have to call [super viewDidLoad] in the -v
我有一个关于子类化的问题。 我从我的第一个 View 开始:在我的 .h 文件中: @interface viewAController : UIViewController 在我的 .m 文件中:
我读到一篇文章说,当创建 UIViewController 类时,属性需要为零,然后 Storyboard 或在调用 viewDidLoad 时将其添加到值中。 它表示在构造对象时也无法初始化属性。
这是我当前的代码。我什至没有通过 viewDidLoad 方法覆盖,因为在它说 super viewdidload 的那一行它抛出错误 @interface for uitableview 为选择器
import UIKit class SecondViewController: UIViewController { @IBOutlet weak var labelA: UILabel!
我需要设置和存储一些可用于 View 的 NSUserDefaults 数据。这不适用于 viewDidLoad。 这可以做到吗? 在 viewDidLoad 之前我可以使用什么方法? 你会推荐什么?
当我向主视图 Controller 中的 viewDidLoad 添加方法时,我的 iPhone 应用程序崩溃了: #import "dbQuestionGetterViewController.h"
当用户切换到另一个程序然后再次返回时,原始程序的 View 将被另一个程序的新 View 替换。那么当用户切换回原来的程序时,viewDidLoad会被第二次调用吗? 我问这个是因为如果是这种情况,那
全部, 我正在从我的 applicationDidFinishLaunching 方法创建一个 windowController ... (void)applicationDidFinishLaunc
这个问题已经有答案了: Looking to understand the iOS UIViewController lifecycle (11 个回答) iPhone SDK: what is th
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 5年前关闭。 Improve this
我知道viewDidLoad在 UIViewController 期间可能会多次调用方法的生命周期。但这怎么可能?如何让它多次调用而不是直接调用它?我试过这样做: UIView *view = [
我在使用 iOS 时遇到了一点问题。我使用协议(protocol)在两个 View Controller 之间来回传递数据并手动切换 View 。我的问题是,当我关闭顶 View 时,不再调用底 Vi
我正在开发一款新应用程序,该应用程序主要用于组织网络内容中的信息。它将是一款用于监控道琼斯指数股息 yield 的金融应用程序。为此,需要执行几个步骤,但我现在正在执行第一步。我想选取道琼斯指数中的
我需要采用 viewDidLoad 方法中填充的变量来显示在连接到自定义单元格的标签上。我想做的是: 查找数据库中存储的用户盒子中的 SKU 使用SKU查找数据库中存储的产品详细信息 将产品详细信息存
我正在 viewDidLoad 中使用异步任务函数,根据返回的响应,我正在更改 View (颜色、文本...),但我有“错误”: 有时,当我更改 View 并返回 View 时,我的 View 背景没
我是一名优秀的程序员,十分优秀!