1

我知道這是可能使用這一個導航項目添加自定義按鈕:在一個UINavigationController的在每個導航項目設置按鈕

UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
[infoButton addTarget:self 
       action:@selector(showInfo:) 
    forControlEvents:UIControlEventTouchUpInside]; 

// Add the info button to the navigation bar 
UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton]; 
[self.navigationItem setRightBarButtonItem:barButtonItem 
            animated:YES]; 
[barButtonItem release]; 

但有推入每個子視圖設置該按鈕的方式導航堆棧,而不必複製此代碼?

謝謝!

回答

4

你也可以繼承的UIViewController,然後覆蓋:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
     UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeInfoLight]; 
     [infoButton addTarget:self action:@selector(showInfo:) forControlEvents:UIControlEventTouchUpInside]; 

     // Add the info button to the navigation bar 
     UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:infoButton]; 
     [self.navigationItem setRightBarButtonItem:barButtonItem animated:YES]; 

     [barButtonItem release]; 
    } 
    return self; 
} 

那麼當喲你做一個新的風險投資,這個類的子類而不是UIViewController

0

當按下「下一個」視圖控制器,你可以添加以下代碼:

nextVC.navigationItem.rightBarButtonItem = [self.navigationItem.rightBarButtonItem copy]; 

但是你必須覆蓋選擇(如果你想你的按鈕將數據發送到您的nextViewController對象):

[nextVC.navigationItem.rightBarButtonItem setTarget:nextVC ...]; 
相關問題