我正在尝试提供一个modelViewController,它在iOs 5设备和模拟器上运行完美,在iOs 4.3模拟器上,但它不适用于iOs 4.0.1 jailbroken设备。 我尝试调试我的代码,viewController初始化但是方法viewWillAppear没有在iOs 4.0.1 jailbroken的设备上调用。它正在所有其他设备上调用。 这是我的代码
loadingView=[[UpdatingVc alloc]initWithVar:var1 andVars:var2 andVarz:var3];
[self presentModalViewController:loadingView animated:YES];
出于安全原因,我使用主varNames隐藏了原始var名称。 init方法是:
-(id)initWithVar:(NSString*)var andVars:(NSString *)vor andVarz:(NSString *)vers{
self = [super initWithNibName:@"UpdatingVc" bundle:[NSBundle mainBundle]];
if(self) //good practice to check first
{
_a=var;
_b=vor;
_c=vers;
}
return self;
}
谢谢
答案 0 :(得分:1)
我相信你的init方法应该是
-(id)initWithVar:(NSString*)var andVars:(NSString *)vor andVarz:(NSString *)vers{
self = [super initWithNibName:@"UpdatingVc" bundle:[NSBundle mainBundle]];
if(self) //good practice to check first
{
_a=var;
_b=vor;
_c=vers;
}
return self;
}
注意super = init方法前面的self = part,你需要在init方法中设置self的值。
希望这有帮助!
答案 1 :(得分:0)
我发现了问题,我在方法viewDidAppear中提出了ModalViewController, 所以解决方法是创建一个方法: - (void)更新并在此方法内部放置呈现modalViewController的代码,然后在viewDidAppear中为此方法添加一个选择器,而不是立即调用它。 所以我的代码现在是
-(void) viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self performSelector:@selector(update) withObject:nil afterDelay:1];
}
-(void)update{
loadingView=[[UpdatingVc alloc]initWithVar:var1 andVars:var2 andVarz:var3];
[self presentModalViewController:loadingView animated:YES];
}
请注意,此问题仅发生在设备上的iOs 4中,而不是发生在使用iOs 4.0的模拟器上