2011-09-24 117 views
1

我有一個UINavigationController,第一個視圖是UIView。我設置了兩個按鈕,每個按鈕都會推入另一個視圖,都是UITableViewControllers。 第一個按鈕工作得很好。問題是:當我在第二個TableViewController中,然後點擊後退按鈕時,它會嘗試再次推送視圖,並且僅在第二次時才返回到主視圖。 我也有一個UITabBarController設置,我注意到如果我在我的第一個選項卡(主視圖與兩個按鈕推動兩個tableviews,精確地在第二個視圖),我點擊另一個選項卡上,然後點擊第一 - 它向我展示了我的第一個UITableViewController的內容,當我點擊它時顯示第二個UITableViewController(應該顯示),並且只有第二次點擊它才能進入主視圖。UINavigationController後退按鈕操作問題

我不知道這是可以理解我剛纔說的,這裏也是後退按鈕的代碼和它的操作:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIButton *back= [UIButton buttonWithType:UIButtonTypeCustom]; 
    UIImage *backImage = [[UIImage imageNamed:@"backb.png"] 
          stretchableImageWithLeftCapWidth:10 topCapHeight:10]; 
    [back setBackgroundImage:backImage forState:UIControlStateNormal]; 
    [back addTarget:self action:@selector(cancel:) 
    forControlEvents:UIControlEventTouchUpInside]; 
    back.frame = CGRectMake(0, 0, 37, 26); 
    UIBarButtonItem *cancelButton = [[[UIBarButtonItem alloc] 
             initWithCustomView:back] autorelease]; 
    self.navigationItem.leftBarButtonItem = cancelButton; 
} 


-(IBAction)cancel:(id)sender{ 
    [self.navigationController popViewControllerAnimated:YES]; 
} 

第一的UITableViewController後退按鈕是設置相同並且工作得很好......可能是什麼問題?

我剛剛添加了另一個UITableViewController,顯然現在當我在第三個視圖中,並且我嘗試返回到主視圖時,它在加載視圖兩次之前以及第一個UITableViewController返回之前...

回答

2

有機會,你有推動第二個視圖控制器兩次。當您同時推送視圖控制器的多個實例時,您在推動動畫中看不到任何區別。它看起來像只有一個控制器被推動。這是因爲你在前一個視圖控制器被完全推入之前推動下一個視圖控制器。

檢查你的代碼,如果你推動第二個視圖控制器兩次。

+0

你是對的我剛纔看到我對最後兩個按鈕有多個操作,謝謝一堆:) – ftwhere

+0

不客氣! :-) – EmptyStack