2011-07-19 129 views
4

如何使用導航控制器中的按鈕推送視圖? 我試圖按照這個例子: http://www.cimgf.com/2009/06/25/uitabbarcontroller-with-uinavigationcontroller-using-interface-builder/在UINavigationController中推送另一個視圖?

這正是我需要的,我有一個UITabBarController有4個選項卡,其中之一是UINavigationController。我想從第一個視圖推送包含導航控制器的視圖 - 這是一個簡單的UIView。它不起作用,我也試着用程序創建的按鈕,沒有任何反應。任何指針?

下面的代碼我有

@interface HomeViewController : UIViewController { 

} 

-(IBAction)pushViewController:(id)sender; 

@end 

--- 

#import "HomeViewController.h" 
#import "NewViewController.h" 

@implementation HomeViewController 

-(IBAction)pushViewController:(id)sender { 
     NewViewController *controller = [[NewViewController alloc] initWithNibName:@"NewViewController" bundle:nil]; 
    [[self navigationController] pushViewController:controller animated:YES]; 
    [controller release], controller = nil; 
} 

這裏也是與連接 http://imageshack.us/photo/my-images/847/screenshot20110719at620.png/

我試過什麼你們建議,仍然一無所獲,按鈕(無論他們在創建截圖Interface Builder或以編程方式)表現得像他們沒有鏈接到任何方法。

+0

嘗試張貼在這裏你的代碼,所以我們可以看到什麼可能會錯誤。 –

+1

你是否遵循了教程的每一步? 「它不起作用」太抽象了,無法理解你的問題。請張貼一些代碼。 – Mat

回答

7

要在其中創建按鈕將這個(如根VC的-viewDidLoad

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
button.frame = CGRectMake(100.0, 100.0, 100.0, 40.0); 
[button setTitle:@"Press" forState:UIControlStateNormal]; 
[viewController.view addSubview:button]; 

[button addTarget:self action:@selector(didPressButton:) forControlEvents:UIControlEventTouchUpInside]; 

而實現此方法:

- (void)didPressButton:(UIButton *)sender 
{ 
    UIViewController *viewController = [[[UIViewController alloc] init] autorelease]; 
    [self.navigationController pushViewController:viewController animated:YES]; 
} 
1

要推一個視圖導航控制器只是做:

YourController *childController = [[YourController alloc] initWithNibName:@"YourControllerView" bundle:NSBundle.mainBundle]; 
[self.navigationController pushViewController:childController animated:YES]; 
[childController release]; 

現在,如果你希望它發生時,按下一個按鈕,將按鈕添加到您的筆尖文件,並將其連接到上觸碰的IBAction方法內部事件。

3

如果你用故事板,手動創建SEGUE

在故事板:

  • 單擊查看
  • 然後右邊欄頂部的菜單中選擇「顯示連接檢查」中的「觸發塞格斯」
  • ,單擊並拖動「手動」觸發到要推
  • 視圖
  • 選擇,在彈出菜單中的「推」,將出現

它會創建一個SEGUE,現在選擇SEGUE並給它一個標識符

現在你可以使用代碼:

-(IBAction)doneAction:(id)sender 
{ 
    [self performSegueWithIdentifier:@"identifier" sender:self ]; 
} 

現在你就可以將作用到你的按鈕

相關問題