2013-10-11 7 views
0

이 포럼에서 모든 솔루션을 시도했지만 여전히 해결할 수 없습니다. 아무도이 문제로 나를 도울 수 있습니까? NSUserDefault가 Urban Airship의 @ "url"키를 읽을 때 tableView를 포함하는 inboxData 클래스를 열길 원합니다 ..경고 : SampleViewController에 UINavigationController를 표시하려고 시도했습니다.이 뷰는 창 계층 구조에 없습니다.

이것은 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]; 

    } 
} 

는 이러한 오류와 함께 반환 ..

경고 : 누구의보기 창 계층 구조에없는

+0

창에 탐색 컨트롤러를 추가해야합니다. self.window.rootViewController = self.navigationController; – karthika

+0

@karthika thanx 4 ur time..can 더 자세한 정보가있을 수 있습니까? xcode에 익숙한 초보자입니다. – user2767343

답변

1

귀하의 SampleViewController이 창 계층 구조에서, 당신은 설정할 필요가 없습니다 SampleViewController에 UINavigationController가를 제시하는 시도 창에서.

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; 
} 

당신이 didFinishLaunchingWithOptions 메소드에서 다음과 같이 사용 storyboad를 사용하는 경우, 뷰 컨트롤러에서

- (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 .. 꼭! 고맙습니다. 정말 감사합니다! – user2767343

+0

@kartikha, 사과를 다시 열면 유감스럽게 생각합니다.이 앱을 열 경우에만 작동합니다. 그러나 도시 비행선에서 알림을 열면 다른 오류가 발생했습니다. 오류는 ==== 경고 : 을 표시하려고 시도했지만보기가 창 계층 구조에 없습니다! 너는이 문제에 대해 어떤 생각을 가지고 있니? – user2767343