एक टैब बार आवेदन के लिए विज़ार्ड का उपयोग करें, और इसे सेट अप के रूप में सामान्य। किसी भी टैब में जहां आप नेविगेशन नियंत्रक जोड़ना चाहते हैं, उसे लाइब्रेरी का उपयोग करके XIB में बनाएं। मेरा एक्सआईबी है:
- File's Owner DescriptiveNameNavViewController
- First Responder
- View UIVIew
- Navigation Controller UINavigationController
- Navigation Bar UINavigationBar
ध्यान दें कि दृश्य में कुछ भी नहीं है। UIVavigationController UIView से जुड़ा हुआ है, जहां नीचे देखेंDidLoad देखें।
टैब के व्यू कंट्रोलर के लिए हेडर फ़ाइल में (जिसे मैंने यहां वर्णनात्मक नामनामवव कंट्रोलर कहा है - इसके लिए कोई विशेष मानक नहीं है, लेकिन मैं मुझे याद दिलाने के लिए [कुछ] NavViewController का उपयोग करता हूं कि यह व्यू कंट्रोलर के साथ एक नेविगेशन नियंत्रक है ।
@interface DescriptiveNameNavViewController : UIViewController {
UINavigationController *navigationController;
}
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
@end
नियंत्रक में: नेविगेशन ढेर यह इसे से जुड़े XIB में नेविगेशन नियंत्रक है कि मैं MainWindow.xib में सेट है कि जादूगर उत्पन्न नियंत्रक नाम) सेट अप एक UINavigationController * IBOutlet है DescriptiveNameNavViewController के लिए, ऐसा कुछ करें:
- (void)viewDidLoad {
[super viewDidLoad];
[[self view] addSubview:[navigationController view]];
DescriptiveNameController *aController = [[[DescriptiveNameController alloc ] initWithNibName:@"DescriptiveNameController" bundle:nil ] autorelease];
aController.title = @"Descriptive Title";
//
// app stuff goes here.
//
[self.navigationController pushViewController:aController animated:YES];
[self.navigationController setDelegate:self];
}
DescriptiveNameNavViewController में प्रतिनिधि को सेट करना बेहद महत्वपूर्ण है, अन्यथा आपको विधियों को नहीं मिलेगा जिन्हें आप DescriptiveNameViewController उदाहरणों और नेविगेशन नियंत्रक के ढेर में दबाए गए किसी और चीज में उम्मीद करते हैं।
DescriptiveNameNavViewController में, इस तरह UINavigationControllerDelegate तरीकों को लागू:
- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if ([viewController respondsToSelector:@selector(viewDidAppear:)]) {
[viewController viewDidAppear:animated];
}
}
और उस कारण होगा संदेशों UINavigationController अंदर नियंत्रकों को प्रचारित करने के लिए की तरह आप उम्मीद करते हैं। ऐसा लगता है कि लोगों के सामने आने वाली कई समस्याएं हैं क्योंकि viewDidAppear: या ViewControllers पर अन्य विधियों को नेविगेशन नियंत्रक में धक्का नहीं दिया जा रहा है।
वैसे भी, मुझे बताएं कि क्या अधिक जानकारी मददगार होगी।
सीधे Tweetie सांकेतिक शब्दों में बदलनेवाला के मुंह से: http://stackoverflow.com/questions/576764/tab-bar-controller-inside-a-navigation -नियंत्रक-या-साझाकरण-ए-नेविगेशन-रूट-वी – chrissr