2012-08-10 51 views
0

我想在標籤欄控制器中添加兩個視圖。像這樣..如何在標籤欄和其他視圖中添加相同的視圖。是否有可能

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    UIViewController *con_view_ctrlr = [[ofi_vc_blocked_list alloc] initWithNibName:@"ofi_vc_blocked_list" bundle:nil]; // This is adding fine. 
    UINavigationController *con_view_navig = [[UINavigationController alloc] initWithRootViewController:con_view_ctrlr]; 

    UIViewController *ab = [[ofi_vc_address_book alloc] initWithNibName:@"ofi_vc_address_book" bundle:nil]; 
    UINavigationController *ab_navig = [[UINavigationController alloc] initWithRootViewController:ab]; 

    ab_tab_bar = [[UITabBarController alloc] init]; 
    ab_tab_bar.viewControllers = [NSArray arrayWithObjects:ab_navig, con_view_navig, nil]; 
} 

我還沒有出現標籤欄。因爲我不希望標籤欄最初顯示。

我想ofi_vc_address_book視圖* (即添加作爲標籤欄的一部分) *以顯示最初另一視圖的一部分。我只需要那個標籤欄。當我的情況來臨時,我想介紹ModalViewController ab_navig(ofi_vc_address_book)與選項欄一起顯示以及我之前添加的其他視圖。但我無法通過不一致層次結構來實現它的崩潰。如何在標籤欄和其他視圖的子項中使用相同的視圖?可能嗎?

+0

我沒有看到你所指的代碼,在這段代碼中我看到兩個單獨的vcs和nav控制器被添加到標籤欄。 「相同的觀點」被添加到什麼地方。你是說你在IB中擁有與這些視圖控制器相同的視圖?這是行不通的。 – 2012-08-10 05:39:08

+0

@stackmonster我還沒有添加那部分代碼,那裏我只是使用insertSubview方法添加的。第一個上面的代碼將在稍後執行,我在那裏插入它的崩潰。 – Feroz 2012-08-10 05:49:33

+0

你的變量名稱不好。閱讀蘋果命名約定http://developer.apple.com/library/mac/#documentation/cocoa/conceptual/codingguidelines/codingguidelines.html – 2012-08-10 07:56:21

回答

0

你不能將同一視圖關聯到多個視圖控制器。這樣做的方法是在IB中複製視圖並將其掛接到第二個視圖控制器,或者在代碼中創建另一個視圖實例並將其設置在視圖控制器上。

+0

然後它就像創建新的視圖只是正確的? – Feroz 2012-08-10 05:52:15

+0

林不知道我明白你在說什麼。 – 2012-08-10 05:54:01

0

presentModalViewController ab_tab_bar,而不是ab_navig,如果你想用導航視圖呈現標籤欄視圖。

+0

我就像你說的那樣,我的問題在這裏是我想要同樣的看法,最初顯示爲其他視圖的一部分。我不知道該怎麼做,它不工作。 – Feroz 2012-08-10 05:51:03

0

標籤欄控制器必須是根視圖控制器。沒有辦法使用標籤欄視圖控制器的另一種方式。 我只看到一種方式 - 在視圖控制器中你不需要標籤欄,你可以隱藏它。 但更好的方法是審查你的應用程序體系結構。我相信你可以找到另一種更好的方式來實現你想要的。

相關問題