Xcode4 警告:尝试在其视图不在窗口层次结构中的SampleViewController上显示UINavigationController
我在这个论坛上尝试了所有的解决方案,但仍然无法解决。有人能帮我解决这些问题吗?当NSUserDefault从城市飞艇读取键@“url”时,我希望应用程序打开包含tableView的inboxData类 这来自SampleViewController类Xcode4 警告:尝试在其视图不在窗口层次结构中的SampleViewController上显示UINavigationController,xcode4,urbanairship.com,Xcode4,Urbanairship.com,我在这个论坛上尝试了所有的解决方案,但仍然无法解决。有人能帮我解决这些问题吗?当NSUserDefault从城市飞艇读取键@“url”时,我希望应用程序打开包含tableView的inboxData类 这来自SampleViewController类 -(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:animated]; NSUserDefaults *defaults = [NSUserDefaults st
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *action_9 = [defaults objectForKey:@"url"];
if ([[[NSUserDefaults standardUserDefaults]objectForKey:@"url"] isEqualToString:@"aa9"])
{
inboxData *screen=[[inboxData alloc]initWithNibName:@"inboxData" bundle:nil];
screen.strGetTableSelect=@"1";
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:screen];
[self presentModalViewController:navigationController animated:YES];
}
}
它返回这些错误
警告:尝试在视图不在窗口层次结构中的SampleViewController上显示UINavigationController您的SampleViewController不在窗口层次结构中,您需要在窗口中设置 在appDelegate中,执行以下操作:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[SampleViewController alloc] initWithNibName:@"SampleViewController" bundle:nil];
self.navigationController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = self.navigationController;
[self.window makeKeyAndVisible];
return YES;
}
如果您使用的是storyboad,请在didFinishLaunchingWithOptions方法中这样使用
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
UIStoryboard *mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone"
bundle: nil];
SampleViewController *mainViewController = (SampleViewController*)[mainStoryboard
instantiateViewControllerWithIdentifier: @"SampleViewController"];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:mainViewController];
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
[self.window setRootViewController:navigationController];
[self.window setBackgroundColor:[UIColor whiteColor]];
[self.window makeKeyAndVisible];
return YES;
}
在视图控制器中
-(void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *action_9 = [defaults objectForKey:@"url"];
if ([[[NSUserDefaults standardUserDefaults]objectForKey:@"url"] isEqualToString:@"aa9"])
{
inboxData *screen=[[inboxData alloc]initWithNibName:@"inboxData" bundle:nil];
screen.strGetTableSelect=@"1";
[self presentModalViewController:screen animated:YES];
}
}
您需要在窗口中添加导航控制器。self.window.rootViewController=self.navigationController@karthika thanx 4你的时间..你能更详细一点吗?因为我是xcode的新手..@karthika..天哪..真管用!太多了!真的很感激@卡提卡,很抱歉再次打断你。如果我只打开应用程序,这将起作用。但是,如果我打开城市飞艇的通知,另一个错误就来了。。错误为==>警告:尝试显示不在窗口层次结构中的视图!。。。你对这个问题有什么想法吗?