2017-12-15 23 views
0

사용자 정의 오버레이의 일부로 정보 버튼이 있습니다. 내 UIImagePickerController입니다. 당신이 그것을 클릭하면, I합니다 (UIImagePickerController "프리젠 테이션"동안 숨겨져) 탐색 모음의 모양을 설정하고 새로운 뷰 컨트롤러 밀어 :Obj C :보기 후에 탐색 바 버튼이 나타납니다.

- (IBAction)infoButtonPressed:(id)sender { 
    CameraHelpViewController *helpController = [[[CameraHelpViewController alloc] initWithNibName:@"CameraHelpViewController" bundle:nil] autorelease]; 

    [[UINavigationBar appearance] setBarStyle:UIBarStyleBlackTranslucent]; 
    [[UINavigationBar appearance] setBarTintColor:[UIColor blackColor]]; 
    [[UINavigationBar appearance] setTranslucent:NO]; 
    [ipc pushViewController:helpController animated:NO]; 

} 

CameraHelpViewController.m

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    // Web view loading 
    NSString *basePath = [[NSBundle mainBundle] resourcePath]; 
    basePath = [basePath stringByReplacingOccurrencesOfString:@"/" withString:@"//"]; 
    basePath = [basePath stringByReplacingOccurrencesOfString:@" " withString:@"%20"];  
    NSString *HTMLfile =[[NSBundle mainBundle] pathForResource:@"camera_help" ofType:@"html"]; 
    NSError *error; 
    NSString *stringFromPath = [[[NSString alloc] initWithContentsOfFile:HTMLfile encoding:NSUTF8StringEncoding error:&error] autorelease];  

    [webView loadHTMLString:stringFromPath baseURL:[NSURL URLWithString:[NSString stringWithFormat:@"file:/%@//", basePath]]]; 
    webView.backgroundColor = [UIColor blackColor];  
    webView.opaque = NO; // Prevents the white flash from occurring  
    [_activityIndicator startAnimating]; 
} 

//UPDATE: 
- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; 
} 

- (void)viewDidDisappear:(BOOL)animated { 
    [super viewDidDisappear:animated]; 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
} 

UPDATE를 @ryancrunchi의 코드를 사용하기 때문에 탐색 모음 버튼이보기로 이동하지 않습니다. 대신 탐색 막대는보기가로드 된 후 몇 초 동안 위로 이동합니다.

enter image description here

나는 새보기가 나타나기 전에 탐색 모음을 완전히 설정하고 싶습니다. 어떻게해야합니까? 이 라인

답변

0

: [ipc setNavigationBarHidden:NO animated:YES]; [ipc pushViewController:helpController animated:NO]; 당신은 탐색 모음 애니메이션을하고 있지만 당신은 애니메이션없이 helpController을 제시한다. 그래서 helpController은 애니메이션 자체를 재생중인 탐색 표시 줄 앞에 나타납니다 (지연된 표시). 보기가 사라지면

- (void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [ipc setNavigationBarHidden:NO animated:animated]; 
    // or 
    [self.navigationController setNavigationBarHidden:NO animated:animated]; 
} 

과 줄을 숨기 : 내가 애니메이션을 원하지 않는 경우

- (void)viewDidDisappear:(BOOL)animated { 
    [super viewDidDisappear:animated]; 
    [ipc setNavigationBarHidden:YES animated:animated]; 
    // or 
    [self.navigationController setNavigationBarHidden:YES animated:animated]; 
} 
+0

, 나는 YES'넣어 당신이 모든 애니메이션을 원하지 않는 경우 , 당신의 CameraHelpViewController[ipc setNavigationBarHidden:NO animated:NO];을 넣어 '? 나는 당신의'viewWillAppear'을 구현했으나 뷰가 나타난 후에도 버튼은 여전히 ​​설정됩니다. (또한'CameraHelpViewController'는'ipc'에 접근 할 수 없습니다.) – Matt

+0

ofc, 애니메이션이 없다면'animated : NO'가 편집되었습니다. 'ipc'에 접근 할 수 없다면 'self.navigationController'를 사용하십시오. – ryancrunchi

+0

버튼이 계속 나타나면 – Matt