2012-11-28 50 views
1

我現在在我的應用程序中使用了UINavigationController。我已經在此導航控制器的視圖中添加了一個按鈕,以便此按鈕顯示在導航欄的頂部。 問題是,當我隱藏導航欄並隱藏按鈕並再次顯示它們時,NavigationBar會出現在按鈕的頂部。 任何人都可以解決這個問題嗎?UINavigationBar在顯示後隱藏查看按鈕

@interface MyNavigationController : UINavigationController<UINavigationControllerDelegate> 
{ 

    UIButton *btnBack ; 
} 
-(id)initWithRootViewController:(UIViewController *)rootViewController 
{ 
    self = [super initWithRootViewController:rootViewController]; 
    if (self) 
    { 
     self.delegate = self ; 


     self.navigationBar.barStyle = UIBarStyleBlack; 


     //btnBack 
     UIImageView *gameImage = [[UIImageView alloc] initWithFrame:CGRectMake(1, 1, 32, 27)]; 
     self.btnBack = [UIButton buttonWithType:UIButtonTypeCustom]; 
     self.btnBack.frame = CGRectMake(10, 5.0, 60, 30); 
     [self.btnBack setBackgroundImage:[UIImage imageNamed:@"backicon.png"] forState: UIControlStateNormal]; 
     [self.btnBack addTarget:self action:@selector(back:) forControlEvents:UIControlEventTouchUpInside]; 
     [self.btnBack addSubview: gameImage]; 
     [self.view addSubview:self.btnBack]; 

    } 
    return self ; 
} 
-(void)hideNavigationItems 
{ 
    [self setNavigationBarHidden:YES animated:YES]; 
    self.btnBack.hidden = YES ; 

} 
-(void)showNavigationItems 
{ 
    self.navigationBarHidden = NO; 
    self.btnBack.hidden = NO ; 
} 
+0

附加代碼PLZ ... – aahsanali

+1

你試過: - (空)bringSubviewToFront:(UIView的*)的看法? –

回答

0

正如評論所說,嘗試:

[self.view bringSubviewToFront:btnBack]; 
+0

沒問題SamehDos。把你的代碼放在你的問題而不是在答案部分可能是有意義的,但否則很高興我可以幫助:) –