2013-08-29 13 views
14

पर नेविगेट किया है क्या आप इस मुद्दे पर ठोकर खा चुके हैं?नेविगेशन कंट्रोलर को उस दृश्य पर प्रस्तुत किया गया है जिसे मैंने

मूल रूप से आईओएस 7 नेविगेशन नियंत्रक को उप-दृश्य पर प्रस्तुत किया गया है जिसे मैंने नेविगेट किया है।

आईओएस 6 में देखें कि नेविगेशन बार और पाद लेख के बीच में नेविगेट किया गया है। आईओएस 7 में ऐसा लगता है कि उप-दृश्य को नेविगेशन बार और पाद लेख के तहत पूर्ण स्क्रीन प्रदान की जाती है। परिणामस्वरूप उपयोगकर्ता इसे नहीं देखता है।

यहाँ कैसे मैं subview को

BRSMyListSubViewController *tagsInfoVC = [[BRSMyListSubViewController alloc] initWithCheckinsList:self.checkinsList 
                       selectedTag:[self tagByIndexPath:indexPath]]; 

[self.navigationController pushViewController:tagsInfoVC animated:YES]; 

यहाँ कैसे मैं इसे viewDidLoad

self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Settings" style:UIBarButtonItemStyleBordered target:self action:@selector(settings:)]; 

self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Logout" style:UIBarButtonItemStyleBordered target:self action:@selector(logout:)]; 

में प्रारंभ है क्या यह मैं भी कि subview का उपयोग कर XIB में परिभाषित किया गया है उल्लेख करना चाहिए लायक है के लिए नेविगेट है autolayout। अंत में यहाँ http://pastebin.com/6RR0zYu4

और कैसे यह आईओएस 7

enter image description here

किसी भी विचारों में आईओएस 6

enter image description here

और में दिखाई देता है: यहाँ मेरी XIB का स्रोत है?

उत्तर

37

ठीक है, मैंने इसे समझ लिया।

अपने उप ध्यान में रखते हुए (BRSMyListSubViewController मेरे मामले में), viewDidLoad में, आप दिलचस्प बात यह रूट दृश्य नियंत्रक इन मूल्य में इन दो

self.edgesForExtendedLayout = UIRectEdgeNone; 
self.automaticallyAdjustsScrollViewInsets = NO; 

या

self.edgesForExtendedLayout = UIRectEdgeNone; 
self.extendedLayoutIncludesOpaqueBars = YES; 

में से एक निर्धारित करने की आवश्यकता डिफ़ॉल्ट रूप से UIRectEdgeAll, NO और YES पर सेट हैं लेकिन इसकी tableView navbar और footer के अंतर्गत नहीं है।

मुझे नहीं पता कि यह इतना अजीब क्यों है।

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

पीएस। उन लोगों के लिए जो इसे आईओएस पर चलाने के लिए चाहते हैं 6. if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)

+0

उत्तर देने के लिए धन्यवाद, यह वास्तव में मेरी मदद करता है। – titicaca

+0

धन्यवाद आपके उत्तर के लिए मेरे दिन बचाओ! –

+0

यह केवल आईओएस 7 के लिए काम करता है यदि आप आईओएस 6 रनिंग डिवाइस में एप्लिकेशन चलाते हैं तो यह आईओएस 7 एसडीके गुण –

4

यदि आपको अपारदर्शी नेविगेशन बार रखने में कोई फर्क नहीं पड़ता है, तो सबसे सरल समाधान दृश्य नियंत्रक में ऐसा करने का सबसे आसान समाधान हो सकता है जो आपके नेविगेशन नियंत्रक बनाता है :

self.navigationController.navigationBar.translucent = NO; 

फ्रेम की स्थिति तब आईओएस 6 के समान व्यवहार को अपनाएगी!

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