Ответ 1
Потому что вы включаете код в свое приложение, когда компилируете его. #import
просто делает текущий контекст (.h
или .m
) осведомленным о методах в этой категории.
Любая категория, которая скомпилирована в ваше приложение, будет загружаться в любое время, пока ваше приложение будет запущено.
Чтобы удалить категорию из добавленной вами цели, удалите файл категории .m из вашего приложения Target->Build Phase->Compile Sources
.
Предполагая, что вы хотите, чтобы некоторые из ваших навигационных панелей использовали этот код, но не ВСЕ, лучший способ сделать это, вероятно, для подкласса UINavigationBar. (Кстати, вы хотите называть [super drawRect:rect]
в вашем подклассе)
Изменить: альтернативный способ добавления изображения в UINavigationBar,
В любом контроллере просмотра вы хотите, чтобы изображение появилось, просто добавьте self.navigationItem.titleView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"header.png"]] autorelease];
в viewWillAppear: