2011-07-11 23 views
1

我有一個視圖控制器內添加rightbarbuttonitem在其viewDidLoad方法我添加以下子視圖:如何從一個子視圖

[self.view addSubview:subViewController.view];

如何可以右欄按鈕項添加到主視圖控制器使用subViewController的viewDidLoad方法導航欄?

我試過很多的組合,如:

self.parentViewController.navigationItem.rightBarButtonItem = printButton;

self.navigationItem.rightBarButtonItem = printButton;

,但沒有奏效...

鑑於打印按鈕顯示正確,如果我從主視圖控制器的viewDidLoad中添加它,但我需要從內部顯示它子視圖出於某種原因可能或不可能?

回答

0

是的,可以試試這個。使用此代碼才能獲得superViewController變化HomeViewController您的SuperView的類名

  HomeViewController *vController = nil; 
     NSArray *vControllers = [self.navigationController viewControllers]; 
     for(UIViewController *vC in vControllers) { 

     if([vC isKindOfClass:[HomeViewController class]]){ 

      vController = (HomeViewController*)vC; 
      break; 
      } 
     } 
//Now assign barbutton item here like 
vController.navigationItem.rightBarButtonItem = barButton; 

讓我知道這是否正常工作與否。

+0

非常感謝Rahul爲你的答案,但它沒有奏效!該按鈕沒有顯示在homeViewController的導航欄上,我把nslog語句放在你提供的if語句中,但它沒有顯示在控制檯 – JaHelia

+0

上,你需要將類名從homeViewController更改爲你的parentViewController的類名。 –

+0

我這樣做當然..但沒有任何改變:(這很奇怪..我把nslog語句放在你提供的if語句裏面,但它沒有顯示在控制檯上 – JaHelia

相關問題