2012-03-13 4 views
6
बदलते समय काटा जाता

जब मैं iOS एप्लिकेशन के शुरू स्क्रीन से एक नया tableViewController धक्का (मैं धक्का सेटिंग स्क्रीन) UINavigationController में शीर्षक एनीमेशन खत्म जब तक काटा जाता है:UINavigationBar शीर्षक viewControllers

enter image description here

मध्य एनीमेशन में NavigationBar है, और बस से पहले एनीमेशन खत्म, यह इस तरह दिखता है:

enter image description here

बजे के बाद ओमेंट, शीर्षक "सेटिंग्स" में सही ढंग से बदलता है। यह एक बड़ा सौदा नहीं है, लेकिन आप कल्पना कर सकते हैं कि यह थोड़ा ओसीडी-प्रवण प्रोग्रामर को कितना परेशान करता है! :)

यहाँ tableViewController में कोड जहाँ मैं शीर्षक सेट, कुछ खास नहीं है:

- (id)initWithStyle:(UITableViewStyle)style 
{ 
    self = [super initWithStyle:style]; 
    if (self) { 
     self.title = @"Settings"; 
     // Hide tabBar when pushed so you cannot switch from the Settings 
     self.hidesBottomBarWhenPushed = YES; 
     self.tableView.backgroundColor = [UIColor colorWithPatternImage: [UIImage imageNamed:@"bg.png"]]; 
    } 
    return self; 
} 
+2

मैं भी इस कष्टप्रद समस्या है। मेरे मामले में मैं नेविगेशन शीर्षक के लिए एक कस्टम फ़ॉन्ट का उपयोग कर रहा हूं और setTitleTextAttributes का उपयोग करके उन्हें सेट कर रहा हूं: forState :, ऐसा नहीं होता है अगर मैं इसे नहीं बदलता। इसके अलावा, यह "मुद्दा" आईओएस 6 में तय किया गया प्रतीत होता है। मुझे चारों ओर एक काम मिलना अच्छा लगेगा, यही कारण है कि मैंने कुछ ध्यान देने के लिए एक बक्षीस शुरू किया ... –

+0

क्या आप ड्रॉपबॉक्स या इसी तरह के bg.png डाल सकते हैं? –

+0

क्या आपने निम्न में से कोई भी उप-वर्गीकृत किया है: 'यूआईएनविगेशनबार', 'यूएनएविगेशनइटम', 'यूएनविगेशन कंट्रोलर'? – Ander

उत्तर

1

मुझे उत्तर के साथ थोड़ा देर हो चुकी है, लेकिन मैंने आईओएस 5 पर इस मुद्दे को ट्रैक किया। जब आप यूआईएनएविगेशनबार पर यूआईपीपेरेंस प्रॉक्सी का उपयोग करते हैं, तो ऐसा लगता है कि आपको ऑटो का उपयोग करने के लिए 0.0 का उपयोग करने के बजाए फ़ॉन्ट आकार को स्पष्ट रूप से सेट करने की आवश्यकता है अभिविन्यास के आधार पर सेट करें।

मैं UINavigationController उपवर्गीकरण और निम्न कोड में डाल करके इसे ठीक करने में सक्षम था:

- (void)viewWillLayoutSubviews { 
    [super viewWillLayoutSubviews]; 

    // You should include a conditional here to check for iOS 5, so iOS 6 doesn't have to do any additional work 
    self.navigationBar.titleTextAttributes = @{ 
     UITextAttributeFont:[UIFont boldSystemFontOfSize:UIInterfaceOrientationIsPortrait(self.interfaceOrientation) || IS_IPAD ? 20.0f : 16.0f], 
     UITextAttributeTextColor:[UIColor whiteColor], 
     UITextAttributeTextShadowColor:[UIColor colorWithWhite:0.0f alpha:0.5f], 
     UITextAttributeTextShadowOffset:[NSValue valueWithUIOffset:UIOffsetMake(0.0f, -1.0f)] 
    }; 
} 
+0

हां, फ़ॉन्ट आकार को हार्ड-कोडेड मान पर डालने से समस्या ठीक हो गई है। यह पिछले कोड था: '[[UINavigationBar उपस्थिति] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName: @" Akzidenz-Grotesk BQ "का आकार: 0.0], UITextAttributeFont,] शून्य];' और मैं सिर्फ ' काम करता है, ' [22.0], UITextAttributeFont, शून्य] [UINavigationBar उपस्थिति] setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys: [UIFont fontWithName:: @ "Akzidenz-Grotesk BQ" आकार] एक निश्चित मूल्य के लिए फ़ॉन्ट आकार को बदल दिया अब एक आकर्षण की तरह। धन्यवाद! –

0

viewWillAppear विधि में

self.navigationItem.title = self.title; 

सेट करने का प्रयास

0

कोशिश

- (void)viewWillAppear:(BOOL)animated { 

    self.title = @"Settings"; 
} 
+1

एक तरफ, प्रति [दस्तावेज़ीकरण] (http://developer.apple.com/library/ios/documentation/uikit/reference/UIViewController_Class/Reference/Reference.html#//apple_ref/occ/instm/UIViewController/viewWillAppear :), "[i] f आप इस विधि को ओवरराइड करते हैं, आपको अपने कार्यान्वयन में किसी बिंदु पर सुपर कॉल करना होगा।" – Rob