Ответ на ваш первый вопрос: вы должны использовать iOS5 (или Last iOS SDK) в качестве базового SDK, но вы устанавливаете минимальную поддерживаемую версию iOS в разделе «Цель развертывания». Там вы можете установить iOS4.0 (или как хотите).
Правильный способ решения вашего второго вопроса - проверить возможность , а не версию. Итак, что-то вроде этого будет работать, скажем, ваш application:didFinishLaunchingWithOptions:
метод:
// iOS5-only to customize the nav bar appearance
if ([[UINavigationBar class] respondsToSelector:@selector(appearance)]) {
UIImage *img = [UIImage imageNamed: @"NavBarBackground.png"];
[[UINavigationBar appearance] setBackgroundImage:img forBarMetrics:UIBarMetricsDefault];
}
Затем вы скомпилируете это с iOS5 SDK, так что использование appearance
вообще будет в порядке. Но когда этот скомпилированный код будет работать на версии iOS до 5, все будет хорошо.
Как уже было сказано, вы можете оставить свой код drawRect:
как есть.