presentModalViewController不适用于设备iOs 4.0.1 jailbroken
问题描述:
我想呈现一个modelViewController,它可以在iOs 5设备和模拟器上完美工作,但在iOs 4.3.1模拟器上却不能工作,但它不适用于iOs 4.0.1越狱设备。 我尝试调试我的代码,viewController初始化,但方法viewWillAppear没有在我的设备上使用iOs 4.0.1 jailbroken调用。它在所有其他设备上被调用。 这里是我的代码presentModalViewController不适用于设备iOs 4.0.1 jailbroken
loadingView=[[UpdatingVc alloc]initWithVar:var1 andVars:var2 andVarz:var3];
[self presentModalViewController:loadingView animated:YES];
我与主varNames墙根原变种名出于安全原因。 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;
}
谢谢
答
我相信你的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;
}
注意自我=在超级的init方法的前面部分,你需要设置init方法中self的值。
希望有帮助!
答
我发现这个问题,我是呈现ModalViewController的梅索德viewDidAppear内, 因此该解决方案是创建一个方法: - (无效)更新,并且此方法内把呈现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
NOP模拟器,没有工作,我通常会写下我的代码,你的方式但是我尝试了不同的方式,并且在我的问题中粘贴了错误的1。无论如何生病编辑我的问题替换你的代码。谢谢你的纠正 – Legnus 2012-03-21 12:53:16