2013-10-11 8 views
0

Я попробовал все решения на этом форуме, но до сих пор не могу решить. Может ли кто-нибудь помочь мне решить эту проблему? Я хочу, чтобы приложение открыло класс inboxData, который содержит tableView, когда NSUserDefault читает ключ @ «url» с Urban Airship.Предупреждение: попытка представить UINavigationController на SampleViewController: чей вид не находится в иерархии окон

это из класса SampleViewController;

-(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]; 
     [email protected]"1"; 
     UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:screen]; 
     [self presentModalViewController:navigationController animated:YES]; 

    } 
} 

он вернется с этим ошибка ..

Предупреждение: Попытка представить UINavigationController на SampleViewController чей вид не в иерархии окон

+0

Вам нужно добавить контроллер навигации в окно. self.window.rootViewController = self.navigationController; – karthika

+0

@karthika thanx 4 ур время..can u более подробно? Coz im новичок в xcode .. – user2767343

ответ

1

Ваш SampleViewController не в иерархии Window, Вам необходимо установить в окне.

В вашем 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]; 
     [email protected]"1"; 
     [self presentModalViewController:screen animated:YES]; 

    } 
} 
+0

@ karthika..OMG..it произведение! sox soo много! действительно ценю это! – user2767343

+0

@kartikha, извините, что прерывает u снова .. это будет работать, если я только открою приложения. но другая ошибка возникла, если я открою уведомление из городского дирижабля. Ошибка ====> Предупреждение: попытайтесь представить в , чей вид не находится в иерархии окон !. .. у вас есть идея по этой проблеме? – user2767343

 Смежные вопросы

  • Нет связанных вопросов^_^