Как создать подкласс UINavigationBar для работы с Three20/iOS5?
Многие из вас, вероятно, заметили, что мы больше не можем создавать категорию для переопределения UINavigationBar
drawRect
в iOS5. Теперь на самом деле я не вижу хорошего способа реализации этой настройки без использования подкласса UINavigationBar
и установите его внутри navigationController->navigationBar в моем MainWindow.xib. Тем не менее, TTNavigator не признают, что navigationController
так как каждый TTViewController
имеет свой собственный суперкласс TTNavigationController
,
1 ответ
Решение
Я не знаю, как решить это для Three20, но в целом для поддержки IOS 5 вы можете использовать этот метод
UIImage *image = [UIImage imageNamed:@"header.png"];
if([navigationBar respondsToSelector:@selector(setBackgroundImage:forBarMetrics:)] ) {
//iOS 5 new UINavigationBar custom background
[navigationBar setBackgroundImage:image forBarMetrics: UIBarMetricsDefault];
}
else{
UIImageView *imgView = [[[UIImageView alloc] initWithImage:image] autorelease];
[imgView setUserInteractionEnabled:NO];
[imgView setTag:TOOLBAR_TAG];
[navigationBar insertSubview:imgView atIndex:0];
}