Mailcomposer с пользовательской панелью навигации

Я столкнулся с новой проблемой.

У меня есть пользовательский контроллер навигации в моем приложении. Я должен добавить изображение на панель навигации, и я использовал этот код в моем AppDelegate-

@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"top-red.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, 44)];
}
@end.

Этот код работает нормально для меня, но когда я использую MFMailComposer в своем приложении и вызываю его при событии кнопки, я вижу, что панель навигации MFMailcomposer также изменяется на мою пользовательскую панель навигации, которую я не хочу менять.

Есть идеи!!!

1 ответ

Решение

Добавляя категорию в UINavigationBar, вы добавляете метод ко всем экземплярам UINavigationBar.

Так как вы переопределяете drawRect: это означает, что всякий раз, когда любая панель навигации хочет нарисовать себя, она использует ваш метод, а не стандартный drawRect:

Вместо того, чтобы делать это, вы должны просто добавить изображение на панели навигации там, где вы хотите, а не изменять его глобально, как вы это сделали здесь.

Другие вопросы по тегам