2015-07-03 8 views
6

की स्थिति के आधार पर मेरा UITableview Y मूल परिवर्तन क्यों बदल रहा है पहली स्क्रीन पर बटन क्लिक करने पर उपयोगकर्ता को टैब बार नियंत्रक के भीतर निहित व्यू नियंत्रकों के साथ प्रस्तुत किया जाता है। दृश्य नियंत्रकों में उनमें दो टेबलव्यू हैं, पहली शीर्ष स्थिर तालिका और नीचे एक दूसरी तालिका है। टैब बार नियंत्रक में व्यू कंट्रोलर जो "अधिक" डिस्प्ले के भीतर सही नहीं हैं। यदि मैं "अधिक" पर जाता हूं और दृश्य नियंत्रक का चयन करता हूं तो दृश्य को नीचे दिए गए शीर्ष सेल के साथ प्रदर्शित किया जाता है।TabBarController

यदि मैं "अधिक" स्क्रीन पर जाता हूं, तो संपादित करें पर क्लिक करें, और दृश्य नियंत्रकों के क्रम को किसी भी तरह से स्थानांतरित करें, "अधिक" डिस्प्ले के माध्यम से प्रदर्शित नियंत्रक को सही तरीके से देखें। "अधिक" अनुभाग छोड़ने पर शीर्ष तालिका कक्ष (शीर्ष तालिका) प्रदर्शित नहीं होता है।

मुझे यह उचित लगता है कि यूआई या स्टोरीबोर्ड में कोई समस्या है, हालांकि इस मुद्दे के रूप में मुझ पर कुछ भी नहीं निकलता है। मैंने मैन्युअल रूप से बाधाओं को सेट करने और सुझाई गई बाधाओं का उपयोग करने की कोशिश की है।

यह नमूना परियोजना https://github.com/propstm/NavigationStructureTest

Top two images are prior to modifying the order of view controllers in the tab bar controller. The bottom two, after.

उत्तर

2

अक्षम आकार वर्गों, और "खड़ी शीर्ष लेआउट गाइड करने के लिए अंतरिक्ष" की कमी (ऊपर tableView) को हटा, सुपर देखने के लिए पिन शीर्ष जगह जोड़ समस्या का समाधान कर सकते हैं। शायद यह एक्सकोड का एक बग है, this देखें।

+0

फिर डाउनवोट क्यों ऊपर उठाना? यह जवाब समझ में नहीं आता है? – NSDeveloper

+0

शीर्ष लेआउट मार्गदर्शिका को हटाने और पिन का उपयोग करके नमूना ऐप में और मेरे बड़े क्लाइंट ऐप में भी काम किया गया था, जिसमें समस्या थी। उस लिंक को साझा करने के लिए धन्यवाद - समस्या का समाधान ऐसा कुछ नहीं था जो मैं स्वयं ही करता था। – propstm

3

पर उपलब्ध है मैं बस दो टेबल कुलपति में कमी अद्यतन, तो इस मुद्दे को वहां नहीं थे।

top tableview constraints

bottom tableview constraints

+0

आप किस बाधा का उपयोग कर रहे हैं? मैंने स्टोरीबोर्ड पर कोई समस्या नहीं होने के लिए नमूना की मास्टर शाखा अपडेट की है और समस्या अभी भी मेरे लिए मौजूद है। – propstm

+0

कृपया अपनी बाधाओं को संपादित उत्तर –

+0

से तुलना करें, वे मान मेरे लिए काम नहीं कर रहे हैं।शीर्ष लेआउट मार्गदर्शिका के लिए शीर्ष स्थान होने के कारण -44 नेविगेशन बार के नीचे शीर्ष तालिकादृश्य को दबा रहा है। क्या आप नमूना परियोजना में पुल अनुरोध को पुश करने में सक्षम होंगे? – propstm

0

मुझे लगता है कि टैबबार नियंत्रक द्वारा प्रदान किए गए "अधिक" नियंत्रक के साथ इसका स्वयं का नेविगेशन नियंत्रक है, और आपकी स्टोरीबोर्ड शीर्ष सलाखों के बाहर किनारों को बढ़ाने के लिए सेट है।

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

मैं आपके डेमो प्रोजेक्ट को दो तरीकों से ठीक करने में सक्षम था। या तो द्वारा:

1) स्टोरीबोर्ड को अपडेट करें और बंद कर देते हैं टैब पट्टी पर "किनारों का विस्तार" (और टैब बार सेट और शीर्ष सलाखों अपारदर्शी होने):

enter image description here

या

2) को सरल बनाएँ viewWillAppear/छुपाएं और viewDidAppear/छुपाएं तरीकों और अधिक नियंत्रक जब टैब बार के भीतर नेविगेशन पट्टी को छुपाने:

- (void)viewDidAppear:(BOOL)animated{ 
    //self.navigationItem.backBarButtonItem.title = @"HOME"; 

    self.tabBarController.title = @"Entity List"; 

    //Pretty activity indicator 
    [self.topTableView reloadData]; 
} 

- (void)viewWillAppear:(BOOL)animated { 
    if (self.navigationController == self.tabBarController.moreNavigationController) { 
     [self.tabBarController.navigationController setNavigationBarHidden:YES]; 
    } else { 
     [self.navigationController setNavigationBarHidden:NO]; 
    } 
} 

- (void)viewWillDisappear:(BOOL)animated { 
    [self.navigationController.navigationBar setHidden:NO]; 
} 

- (void)viewDidDisappear:(BOOL)animated { 
} 

यह सुनिश्चित करता है कि शीर्ष नेविगेशन लेआउट गाइड को गड़बड़ किए बिना सही ढंग से दिखाई देता है।

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