2010-12-09 38 views
1

我目前有一個附帶有三個UIButton的視圖窗口。當用戶按下按鈕時,我希望視圖使用NavigationController更改爲新視圖。按UIButton將新視圖推入導航棧

所以現在我有大約按鈕編碼就像這樣:

UIButton *aboutButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
aboutButton.frame = CGRectMake(236, 240, 60, 60); 
[aboutButton setImage:[UIImage imageNamed:@"About.png"] 
    forState:UIControlStateNormal]; 
[aboutButton addTarget:self action:@selector (aboutButtonPressed) 
    forControlEvents:UIControlEventTouchUpInside]; 
[self.view addSubview:aboutButton]; 

而對於動作功能:

-(void)aboutButtonPressed { 
    UINavigationController *aboutView =[[UINavigationControlleralloc] initWithNibName:@"About" bundle:nil]; 
    [self.navigationController pushViewController:aboutView animated:YES]; 
    [self.view addSubview:aboutView.view]; 
    [aboutView release]; 
} 

的About.xib文件目前什麼也沒有。

現在解決問題......按下按鈕時,頂部導航欄會顯示在頂部,但不會像動畫那樣顯示,就像我已經編碼一樣。它剛剛彈出。也沒有後退按鈕返回到與他們的按鈕視圖。我究竟做錯了什麼?如果不夠清楚,我可以提供更多的代碼或細節。

編輯:這是一張圖片,以更好地瞭解發生了什麼。

後點擊關於按鈕:

http://dl.dropbox.com/u/1481176/Screen%20shot%202010-12-09%20at%2011.28.40%20AM.png

編輯2:去掉了一些靠不住的代碼返回按鈕,不應該的在那裏。

回答

1

pushViewController之後的大部分代碼看起來都很狡猾。

-(void)aboutButtonPressed { 
    AboutViewController *aboutView =[[AboutViewController **alloc**] initWithNibName:@"About" bundle:nil]; 
    [self.navigationController pushViewController:aboutView animated:YES]; 
    [aboutView release]; 
} 

這應該至少將你的空視圖推到堆棧上,並自動給你一個後退按鈕。

+0

我刪除了後退按鈕代碼,現在它看起來像你有什麼+ [self.view addSubview:aboutView.view];因此視圖實際上彈出...但它仍然無法按預期工作。 – SalsaSalsa 2010-12-09 16:26:29

相關問題