0

Я не понимаю, почему это произошло, поэтому я ищу кого-то, чтобы помочь объяснить причину.Сообщения не отображаются Элементы действия UIActivityViewController

Я сделал это переопределение в своем коде, чтобы исправить проблему, у меня был с синими элементов панели кнопок на синем навигационном баре, когда в сообщениях с помощью действия доли активности (все остальные кнопки Оттенок белый):

extension MFMessageComposeViewController { 
    public override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 
    self.navigationController?.navigationBar.tintColor = UIColor.whiteColor() 
    } 
} 

Теперь, когда я пытаюсь передать текст и NSURL через UIActivityViewController, он больше не отображает текст и URL-адрес в текстовой области «Сообщения». Когда я прокомментирую вышеприведенный код, он снова работает и отображает текст и ссылку правильно (но, конечно, с элементами синей строки на синей навигационной панели).

Что могло случиться так?

ответ

1

В расширении, переопределение сделает первоначальную функцию этого класса invalid.But наследуют не будет. (Если вы назвали супер ....)

let vc: MFMessageComposeViewController = … 
vc.navigationController?.navigationBar.tintColor = UIColor.whiteColor() 

А затем представить его.

+0

Другими словами, супер в расширении супер, но в наследовании есть сам. – Lumialxk

+0

Спасибо. Проблема в том, что я не могу называть MFMessageComposeViewController, потому что меню Action вызывает его, поэтому я не могу сказать, что это унаследованная версия. Есть ли другой способ реализовать пересмотренный оттенок навигатора? –

+0

@JustinStanley Обновлен мой ответ. – Lumialxk

1

Вот что работало для меня в прошлом:

// Changes Bar Color // 
UINavigationBar.appearance().barTintColor = UIColor.blueColor() 
// Changes Bar Button Color // 
UIBarButtonItem.appearanceWhenContainedInInstancesOfClasses([UINavigationBar.classForCoder()]).tintColor = UIColor.whiteColor() 
// Set Up & Show ActivityController //  
let activityController = UIActivityViewController(activityItems: ["YOUR TEXT HERE"], applicationActivities: nil) 
self.presentViewController(activityController, animated: true, completion: nil) 

Надеется, что это помогает!

+0

Посмотрите, что у меня уже есть те первые две строки в AppDelegate, но элементы сообщений и сообщений по-прежнему не имеют белых barbuttonitems! Говорю вам! лол. Все остальное точно так, как должно быть. –

+1

Ничего себе, это похоже на ошибку. Я переместил первые две строки в 'doneFinishLaunchingWithOptions()', и все работает отлично. Я бы определенно предложил очистить проект, удалить и переустановить приложение на устройстве, а также завершить работу и перезапустить Xcode. – ZGski

+0

Я сделаю это! –

Смежные вопросы