Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在viewdidload方法中切换视图控制器_Iphone_Objective C_Nsuserdefaults_Viewcontroller - Fatal编程技术网

Iphone 在viewdidload方法中切换视图控制器

Iphone 在viewdidload方法中切换视图控制器,iphone,objective-c,nsuserdefaults,viewcontroller,Iphone,Objective C,Nsuserdefaults,Viewcontroller,我正在开发一个iphone应用程序,我想通过检查userdefaults来切换视图控制器。因此,我做了以下工作: NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if ([defaults objectForKey:@"keyString"] != nil) { nextViewController *redirectView = [[nextViewController alloc] initWith

我正在开发一个iphone应用程序,我想通过检查userdefaults来切换视图控制器。因此,我做了以下工作:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

if ([defaults objectForKey:@"keyString"] != nil) {
    nextViewController *redirectView = [[nextViewController alloc] initWithNibName:@"nextViewController" bundle:[NSBundle mainBundle]];
self.nextView = redirectView;
[self presentModalViewController:self.nextView animated:YES];
} else {
[defaults setObject:@"newValue" forKey:@"keyString"];
}

它不起作用。。这条路对吗???如果没有,谁能告诉我怎么做

不要将重定向视图分配给self.nextView。像这样直接传过来

[self presentModalViewController:redirectView animated:YES];
添加行

[self.view addSubview:nextView]; 
而不是

[self presentModalViewController:self.nextView animated:YES];

}

您是否使用导航控制器?请在问题中提供更多信息。“不工作”是什么意思?如果条件未变为真,或者条件为真但视图未显示?@Aman否。。我正在使用视图控制器…@taskinoor:对不起。。事实上,如果情况良好。但是视图没有切换到下一个视图…它在控制台中显示异常,如下所示:[nextViewController superview]:未识别的选择器已发送到实例是否将nextview作为.h中的属性?这给了你什么例外是的,我已经在.h文件中声明了下一个视图。。。实际上,当我在其他操作中使用重定向时,它工作正常(当单击按钮时发生),但在viewdidload方法中它不工作…非常感谢。。我终于让它工作了。。我把它放在ApplicationIDFinishLaunching方法中并添加子视图。。。非常感谢……你的下一个观点是什么?声明的位置?netxView是我在接口(.h文件)中为nextViewController创建的对象…那么redirectView也是同一个nextViewController的对象。为什么需要创建同一类的两个对象?试试我现在发布的答案。@iphoneFreak:我试过你的解决方案,但没用。。。实际上,切换在其他操作中正常工作,但在viewdidload操作中不正常。。我的疑问是我们能否在viewdidload方法中切换视图???在应用程序即将启动时,您是否正在执行此操作?如果是,则在appDelegate的ApplicationIDFinishLaunching方法中执行此操作。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

if ([defaults objectForKey:@"keyString"] != nil) 
{ nextViewController *redirectView = [[nextViewController alloc]init]; 
[self presentModalViewController:redirectView animated:YES]; 
redirectView=nil;
 } 
else { 
[defaults setObject:@"newValue" forKey:@"keyString"];