gpt4 book ai didi

xcode4 - iOS7/XCode5 - 立即调用 "viewDidLoad",而不是在调用 "presentViewController"时调用

转载 作者:行者123 更新时间:2023-12-02 05:05:06 25 4
gpt4 key购买 nike

我刚刚升级到 XCode5 和 iOS7,现在我的应用程序已停止工作。

我正在基于当前 View 的属性创建一个新 View ,并且在显示新 View 之前我需要设置它的一些属性。

以前,我是这样做的:-

hqView *v = [[hqView alloc] initWithNibName:NULL bundle:NULL];
[v setProperty1:true];
[v setProperty2:false];

[self presentViewController:v animated:TRUE completion:NULL];

这随后触发了 View Controller 上的 [viewDidLoad] 方法,其中包含以下代码:-

if ([self property1])
{
[list1 load]
}
else
{
[list2 load]
}

但是现在,一旦我创建 View ,[viewDidLoad]方法就会触发,这意味着我无法在调用[viewDidLoad]之前设置属性,因此无论我实际想要什么,它总是加载list2。

问题是 - 这在 iOS6 下没有发生,所以我想知道是否是 XCode5 中的新设置导致了这种情况的改变,或者我是否必须重写它来完成我需要它做的事情做什么?

最佳答案

您无法知道何时调用 viewDidLoadviewWillAppear 等。

我的建议:为您的 Controller 创建一个专用的 init 方法,例如:

@implementation hqView

- (instancetype)initWithProperty1:(BOOL)prop1 property2:(BOOL)prop2
{
// uses default NIB
self = [super initWithNibName:nil bundle:nil];
if (self){
[self setProperty1:prop1];
[self setProperty2:prop2];

}
return self;
}


@end

关于xcode4 - iOS7/XCode5 - 立即调用 "viewDidLoad",而不是在调用 "presentViewController"时调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18955249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com