2013-07-22 8 views
6

के अंदर UINavigationController जोड़ें मेरे पास UIToolController UIToolbar (नीचे) के साथ है और मैं UINavigationBar के अंदर UINavigationBarroller जोड़ना चाहता हूं। लेकिन UINavigationController प्रदर्शित नहीं होता है।UIViewController

MyViewController.m:

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    int toolBarHeight = 44; 
    UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, [self.view bounds].size.height-toolBarHeight, [self.view bounds].size.width, toolBarHeight)]; 

    UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:nil action:nil]; 
    toolBar.items = @[button]; 

    [self.view addSubview:toolBar]; 

    MyNavigationController *myNav = [[MyNavigationController alloc] init]; 

    [self addChildViewController:myNav]; 
} 
+3

आपको नेविगेशन नियंत्रक के अंदर viewController जोड़ने की आवश्यकता है। '[[MyNavigationController alloc] initWithRootViewController: viewController];' – HelmiB

उत्तर

14

एक बच्चे को देखने के नियंत्रक के रूप में एक दृश्य नियंत्रक जोड़ा जा रहा है पर्याप्त नहीं है। आपको कंटेनर व्यू कंट्रोलर के दृश्य के सबव्यूव के रूप में नेविगेशन कंट्रोलर के दृश्य को भी जोड़ने की आवश्यकता है।

[myNav willMoveToParentViewController:self]; 
myNav.view.frame = navFrame; //Set a frame or constraints 
[self.view addSubview:myNav.view]; 
[self addChildViewController:myNav]; 
[myNav didMoveToParentViewController:self]; 

अधिक जानकारी के लिए the View Controller Programming Guide देखें।

+0

मैं वही कर रहा हूं, हालांकि एनवी नियंत्रक की ऊंचाई और चौड़ाई मेरे द्वारा निर्धारित फ्रेम के अनुसार नहीं है। हालांकि मूल बिंदु सही है। क्या आप मदद कर सकते हैं? – Sam

+0

आमतौर पर यह ऑटो लेआउट से संबंधित है, दृश्य नियंत्रक घोंसला नहीं। आपको कोड में बाधाएं जोड़ने की आवश्यकता हो सकती है और सुनिश्चित करें कि 'translatesAutoresizingMaskIntoConstraints' को सेट किया गया है। यदि आप स्प्रिंग्स और स्ट्रेट्स का उपयोग कर रहे हैं, तो सुनिश्चित करें कि आप पैरेंट व्यू में दृश्य जोड़ने से पहले उन्हें जोड़ दें। – architectpianist

+1

प्रारंभ में मैं प्रोग्रामिंग के रूप में 'UINavigationController' बना रहा था और इसे जोड़ रहा था। मैंने आईबी की मदद से कंटेनर व्यू बनाकर और अपने यूआईएनविगेशन कंट्रोलर से कनेक्ट करके इस मुद्दे को हल किया। कोई कोड नहीं जोड़ा गया, आईबी के माध्यम से किया गया सब कुछ और यह सही काम करता है। – Sam