2012-05-28 41 views
1

我正在用UIApperance設計我的iOS應用程序。我已經設法使所有UINavigationBar中的所有酒吧按鈕項都具有灰色文本,只有一個特定的按鈕 - MFMessageComposeViewController視圖的發送按鈕保持其默認白色。爲什麼我的代碼會針對除此之外的每個按鈕?如何使用UIAppearance在UINavigationBar上設置提交按鈕的樣式?

enter image description here

NSDictionary* normalStyle = [NSDictionary 
    dictionaryWithObjects:[NSArray 
     arrayWithObjects: 
      [UIColor navigationTextNormalColor], 
      [UIColor whiteColor], 
      [NSValue 
       valueWithUIOffset:UIOffsetMake(
        0, 
        1 
       ) 
      ] 
      , nil 
     ] 
     forKeys:[NSArray 
      arrayWithObjects: 
       UITextAttributeTextColor, 
       UITextAttributeTextShadowColor, 
       UITextAttributeTextShadowOffset, 
       nil 
     ] 
]; 

[[UIBarButtonItem appearanceWhenContainedIn:[UINavigationController class], nil] 
    setTitleTextAttributes:normalStyle 
    forState:UIControlStateNormal 
]; 

[[UINavigationBar appearanceWhenContainedIn:[UINavigationController class], nil] 
    setTintColor:[UIColor navigationBarTintColor] 
]; 

回答

0

根據文檔:

http://developer.apple.com/library/ios/#documentation/MessageUI/Reference/MFMailComposeViewController_class/Reference/Reference.html

重要的郵件撰寫界面本身並不定製 而不能使用你的應用程序進行修改。此外,在 呈現界面之後,您的應用程序不允許對電子郵件內容進行進一步更改 。用戶仍然可以使用界面編輯內容,但程序化更改將被忽略。 因此,您必須在呈現 接口之前設置內容字段的值。

+0

我不認爲UINavigationBar是郵件編輯器視圖的一部分,因爲它位於層次結構之外。 – JoJo

+0

我花了很多時間試圖解決這個問題。你可以自定義顏色/背景,但這是關於它。基本上他們不希望任何人能夠誘騙某人發送電子郵件。 –

相關問題