2012-01-07 4 views
0

я следующий код-фрагменты:Как настроить панель навигации на iPhone в Xcode?

1.)

[[UINavigationBar appearance] setBackgroundImage:myImage forBarMetrics:UIBarMetricsDefault]; 

Где бы я поставил это?

или 2.)

@implementation UINavigationBar (BackgroundImage) 
//This overridden implementation will patch up the NavBar with a custom Image instead of the title 
- (void)drawRect:(CGRect)rect { 
    UIImage *image = [UIImage imageNamed: @"NavigationBar.png"]; 
    [image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)]; 
} 
@end 

Где бы я поставил это?

Я попытался добавить панель навигации к моему диспетчеру просмотра, но я точно не знаю, где разместить эти фрагменты кода.

+0

вы можете также спросить, что вы должны настроить, для изменения сказать, всю навигацию цвет/бар/titleImage ... и т.д. – Splendid

+0

Вопрос выглядит как дубликат, вы можете ссылаться на следующий поток - http://stackoverflow.com/questions/704558/custom-uinavigationbar-background – rishi

ответ

1

Фрагмент 1 - это только iOS 5.0. Вы поместили бы это где-нибудь, прежде чем ваша панель навигации будет создана так, возможно, в applicationDidFinishLaunching:. Посмотрите здесь для получения дополнительной информации:

Отрывок 2 является то, что вы использовали, чтобы сделать перед прошивкой 5.0. Это категория на UINavigationBar. На самом деле я не видел переопределения drawRect: в категории, но похоже, что он работает. Просто создайте категорию в своем проекте по номеру UINavigationBar и добавьте этот код. Так что-то вроде:

UINavigationBar+MyCategory.h:

@interface UINavigationBar (MyCategory) 
- (void)drawRect:(CGRect)rect; 
@end 

UINavigationBar+MyCategory.m:

#import "UINavigationBar+MyCategory.h" 

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

Не нужно помещать 'drawRect' в файл' .h'. Он не является публичным и не должен называться напрямую. – Mundi

+0

Я довольно новичок в объективе-c, и, к сожалению, я никогда не пользовался категорией ... поэтому в основном мне нужно создать новый класс UINavigationBar под названием 'UINavigationBar + MyCategory.h'? –

+0

Я предлагаю вам пойти и прочитать о том, что такое категория Objective-C (попробуйте Wikipedia или Cocoa Dev Central), а затем она должна стать ясной. То, что я показал, - это 2 * * файлы для создания, а затем добавить их в свой проект. – mattjgalloway