20

मैं स्टोरीबोर्ड में निम्न सेटअप प्राप्त करने का प्रयास कर रहा हूं।स्टोरीबोर्ड नेविगेशन नियंत्रक और टैब बार नियंत्रक

Storyboard

मैं कहां से शुरुआत में एक तालिका दृश्य है, और जब मैं एक सेल यह टैब बार नियंत्रक, जो काम करता है के लिए संक्रमण की जरूरत को टैप करें। लेकिन अब मैं 2 सबसे सही नियंत्रकों में एक शीर्षक और अतिरिक्त नेविगेशन बार बटन चाहता हूं।

लेकिन मुझे वहां बटन खींचने या शीर्षक सेट करने पर प्रतीत नहीं होता है, कुछ भी दिखाई नहीं देता है। मैं स्टोरीबोर्ड में इस सेटअप को कैसे प्राप्त कर सकता हूं?

संपादित करें:

नीचे दिए गए उत्तर के आधार पर अद्यतन प्रश्न।

New setup

जब मैं इस नए सेटअप (इस प्रकार के बीच में एक अतिरिक्त नेविगेशन नियंत्रक के साथ) है मैं स्टोरीबोर्ड में शीर्षक सेट कर सकते हैं, लेकिन जब अनुप्रयोग चल रहा है, जोड़ा शीर्षक नहीं दिखाया गया है।

संपादित करें: मेरे पास uploaded ठीक उसी सेटअप के साथ एक xcode प्रोजेक्ट है। शायद यह काम में आ सकता है।

+0

आपकी समस्या हल हो गई है, मैं इसी तरह की समस्या को हल करता हूं –

उत्तर

24

(2 अन्य UINavigationController बनाने की आवश्यकता के साथ) UINavigationBar शीर्षक बदल रहा है तो आप सिर्फ

[self.parentViewController.navigationItem setTitle:@"Title"]; 

उपयोग कर सकते हैं और सही बटन प्रत्येक UIViewController के लिए viewDidLoad विधि पर उपयोग

self.parentViewController.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(myRightButton)]; 

जोड़ने के लिए आपके UITabBarController से संदर्भित।

आप TabItems से अपने UIViewController अंदर "नेविगेशन संरचनाओं" के साथ काम करना चाहते हैं तो आपको लगता है कि करने के लिए अपने BUFViewController.m संपादित कर सकते हैं:

#import "BUFViewController.h" 

@interface BUFViewController() 

@end 

@implementation BUFViewController 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view, typically from a nib. 
    [self.parentViewController.navigationController setNavigationBarHidden:YES]; 
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(done)]; 
} 

-(void)done{ 
    [self.parentViewController.navigationController popToRootViewControllerAnimated:YES]; 
} 

- (void)didReceiveMemoryWarning 
{ 
    [super didReceiveMemoryWarning]; 
    // Dispose of any resources that can be recreated. 
} 

@end 

आप अपने UITabBarController के रूप में सोचना अपने माता पिता के अंदर है NavigationController, इसलिए आप पैरेंट UINavigationBar को छिपाना चाहते हैं और अपना दिखाएं। उसके बाद, आप popToRootViewControllerAnimated का उपयोग करके अपनी तालिका में वापस जा सकेंगे: माता-पिता के UINavigationController पर।

आशा है कि मदद करता है :)

+0

आपके उत्तर के लिए धन्यवाद। मैंने आपके विचार की कोशिश की है, और यह काम करता है, लेकिन यह "बैक बटन" भी मारता है जो आम तौर पर दिखाई देगा। (चूंकि इसे ओवरलेइंग नेविगेशन बार में जोड़ा गया है)। पता नहीं है कि 2 नेविगेशन बार होने का तरीका यहां जाना है या नहीं। लेकिन एक के साथ (मेरा पहला स्क्रीनशॉट) मैं शीर्षक या बटन जोड़ने के लिए प्रतीत नहीं कर सकता। – Matthijn

+1

वास्तव में, हमें बैक बटन को फिर से बनाना था, जो अच्छी तरह से काम करता है। – ErickBergmann

+0

मैं आपका संपादन देखता हूं और वास्तव में कोड में बैक बटन जोड़ सकता हूं, और यह काम करता है। लेकिन क्या ऐसा कुछ नहीं है जिसमें मैं याद कर रहा हूं? यह एक और अधिक सुरुचिपूर्ण तरीके से किया जा सकता है। – Matthijn

1

आपको उन दृश्य नियंत्रकों को UINavigationViewControllers के साथ प्रतिस्थापित करने की आवश्यकता है।

दाएं दो दृश्य नियंत्रकों को हटाएं।

स्टोरीबोर्ड पर 2 UINavigationViewControllers खींचें और उन्हें बताएं कि आप कैसे चाहते हैं।

फिर, आपको टैब बार नियंत्रक में उन नए नेविगेशन व्यू कंट्रोलर को हुक करने की आवश्यकता है। Ctrl टैब नियंत्रक से नेविगेशन नियंत्रकों पर क्लिक करें और खींचें। पॉप अप करने वाले मेनू के "रिलेशनशिप सेग्यू" अनुभाग से "नियंत्रक देखें" का चयन करें। नेविगेशन नियंत्रकों दोनों के लिए यह करो।

+0

हां, मैंने कोशिश की है (मैंने अपना प्रश्न अपडेट किया है) क्योंकि यह मेरा प्रारंभिक विचार था। फिर मैं स्टोरीबोर्ड बिल्डर में एक शीर्षक रख सकता हूं, लेकिन जब मैं ऐप चला रहा हूं तो यह दिखाई नहीं देता है। – Matthijn

+0

क्या आपने "इन्फर्ड" का उपयोग करने के बजाय अपने स्टोरीबोर्ड के गुण निरीक्षक दृश्य में शीर्ष बार को स्पष्ट रूप से सेट करने का प्रयास किया है? – Kamaros

+0

यदि स्पष्ट रूप से आपको इस इनपुट फ़ील्ड का उपयोग करके मतलब है, तो [yes] (http://cl.ly/VQGx)। जैसा कि आप देख सकते हैं मैं बार में एक बार बटन भी खींच सकता हूं। लेकिन जब उस ऐप को चलाते हैं, तो उस दृश्य के लिए केवल खाली नेविगेशन बार के लिए कुछ भी नहीं दिखाया जाता है। – Matthijn

3

मैं अपने परीक्षण एप्लिकेशन को देखा है, और मैं शीर्षक देखते हैं, बहुत धुँधली-सी, नेविगेशन पट्टी के अंतर्गत है। यदि आप टैब बार नियंत्रक का चयन करते हैं, तो आप दोनों नेविगेशन बार देख सकते हैं, और "शीर्ष बार्स के नीचे" बॉक्स को अनचेक कर सकते हैं। हालांकि, यह आपको नेविगेशन बार पर एक अजीब छाया देता है। मुझे नहीं पता कि इसे ठीक करने का कोई आसान तरीका है, लेकिन मुझे नहीं लगता कि यह यूआई दो नेविगेशन बार के साथ किसी भी तरह से अच्छा दिखता है। आप प्रारंभिक नेविगेशन नियंत्रक को खत्म करना चाहते हैं, और इसके बजाय टैब बार नियंत्रक को प्रस्तुत करने के लिए एक मोडल सेग्यू का उपयोग करना चाहते हैं। आप नेविगेशन नियंत्रकों को एक बार बटन आइटम जोड़ सकते हैं जो आपको अभी भी मोडल व्यू कंट्रोलर को बर्खास्त करना होगा।

0
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([segue.identifier isEqualToString:@"Overview_Register"]) 
    { 
     WDRegisterViewController *obj=(WDRegisterViewController *)[segue destinationViewController]; 
     [email protected]"Edit Profile"; 
     obj.isRegister=NO; 
    } 
} 

      [self performSegueWithIdentifier:@"Overview_Measure" sender:nil]; 



    UIStoryboard *sb = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
    WDPeekViewController *Peek = (WDPeekViewController *)[sb instantiateViewControllerWithIdentifier:@"WDPeekViewController"]; 
[self.navigationController pushViewController:tabBarController animated:YES]; 
10

बस मामले में किसी को भी एक तेज दृष्टिकोण के लिए देख रहा था:

tabBarController?.title = "Your Title" 
tabBarController?.navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Right Button Title", style: UIBarButtonItemStyle.Plain, target: self, action: "rightButtonFunction") 

कोड सबसे अच्छा viewDidAppear या viewWillAppear तो शीर्षक और अलग टैब के रूप में बटन परिवर्तन दबाया जाता है में रखा गया है।

आपको इस दृष्टिकोण के साथ अतिरिक्त नेविगेशन नियंत्रकों की भी आवश्यकता नहीं होगी।

संबंधित मुद्दे