2012-11-01 91 views
0

我有一個TabBarController的iPhone應用程序,每個選項卡都有一個導航控制器..其中一個導航控制器推到另一個Viewcontroller。在該視圖控制器我想隱藏後退按鈕,並放置我的自定義按鈕之一。在我的NavBar奇怪的東西

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self._allUsersParticipantsInTheVideo = [[NSMutableArray alloc] init]; 
    self._allUsersInvitesInTheVideo = [[NSMutableArray alloc] init]; 

    for (int i=0; i < [self._curVideoToShow._videoParticipants count]; i++) { 
     [self._allUsersParticipantsInTheVideo addObject:[self._curVideoToShow._videoParticipants objectAtIndex:i]]; 
    } 
    for (int i=0; i < [self._curVideoToShow._videoInvitees count]; i++) { 
     [self._allUsersInvitesInTheVideo addObject:[self._curVideoToShow._videoInvitees objectAtIndex:i]]; 
    } 

    [self setNavBar]; 
} 

#pragma mark - Set NavBar 

-(void)setNavBar{ 
    self.navigationItem.hidesBackButton = YES; 

    UIView *navBarItemview = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)]; 
    [navBarItemview setBackgroundColor:[UIColor clearColor]]; 

    // Set cutsom back button 
    //UIImage *backImage = [UIImage imageNamed:@"backButton.png"]; 
    UIImage *backImage = [UIImage imageNamed:@"LeftArrowBg.png"]; 
    CGRect frame = CGRectMake(0, 6, backImage.size.width + 4, backImage.size.height); 
    UIButton *bttn = [[UIButton alloc] initWithFrame:frame]; 
    [bttn setBackgroundImage:backImage forState:0]; 
    [bttn setTag:kBackBttn]; 
    [bttn setTitle:@"Back" forState:UIControlStateNormal]; 
    [bttn setTitleEdgeInsets:UIEdgeInsetsMake(4, 5, 0, 0)]; 
    [bttn.titleLabel setFont:[UIFont fontWithName:@"PTSans-Bold" size:12.0]]; 
    [bttn setContentMode:UIViewContentModeScaleAspectFit]; 
    [bttn addTarget:self action:@selector(backButtonPressed) forControlEvents:UIControlEventTouchUpInside]; 

    [navBarItemview addSubview:bttn]; 


    UILabel *titleLbl = [[UILabel alloc] initWithFrame:CGRectMake(0, 4, 320, 40)]; 
    [titleLbl setFont:[UIFont fontWithName:@"PTSans-Bold" size:24.0]]; 
    [titleLbl setTextColor:[UIColor whiteColor]]; 
    [titleLbl setTextAlignment:UITextAlignmentCenter]; 
    [titleLbl setBackgroundColor:[UIColor clearColor]]; 
    [titleLbl setTag:kTitleLbl]; 
    [titleLbl setShadowOffset:CGSizeMake(0, 1)]; 
    [titleLbl setShadowColor:[UIColor blackColor]]; 
    [titleLbl setText:@"All Participants"]; 

    [navBarItemview addSubview:titleLbl]; 
    self.navigationItem.titleView = navBarItemview; 
} 

正如你可以看到我寫的:

self.navigationItem.hidesBackButton = YES; 

但是當應用程序被共進午餐的第一次,我看到的NavBar的後退按鈕只在第一次,但後來每次我打開應用程序的按鈕仍然是我自定義的一個。 (也當我導航它是我的習慣) 有人?

+0

在推,但ViewwillApeaer添加你的代碼在ViewWillApear不是viewDidLoad中becouse viewDidLoad中調用僅一次每次撥打電話時都要打電話,因此可能會出現問題:) –

+0

我試試這個全部準備齊全:( – Sosily

+0

從哪裏添加navcontroller? –

回答

0

嘗試用這個..

-(void)viewWillAppear:(BOOL)animated 
{ 
    self.navigationItem.hidesBackButton = YES; 
} 

[self.navigationController.navigationItem setHidesBackButton:YES]; 

self.navigationController.navigationItem.backBarButtonItem = nil; 
+0

這是不一樣的? – Sosily

+0

self.navigationItem.hidesBackButton = YES; – Sosily

+0

有些時候它沒有工作,沒有分配設置方法,也backBartButton =無它的工作嘗試這個.. –