xcode4.2(storyboard,Navigation Controller)如何为UINavigationBar设置自定义图像

时间:2011-12-04 11:53:21

标签: uinavigationcontroller custom-controls uinavigationbar xcode4.2 storyboard

我正在使用故事板创建iPhone应用程序。 我不知道如何为UINavigationBar设置自定义图像。

请教我如何做到这一点。 嗯,我不是程序员,只是一名设计师。

非常感谢你给我很好的代码。

我把代码放到了我的“ MainAppDelegate.m

   - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController;
    SelectClientNavController *controller = (SelectClientNavController *)navigationController.topViewController;
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"yourBackGroundImage.png"] forBarMetrics:UIBarMetricsDefault];
    controller.managedObjectContext = self.managedObjectContext;
    return YES;
}

但我收到了以下几个错误!!


对于这一行:

SelectClientNavController *controller = (SelectClientNavController *)navigationController.topViewController;

1。预期表达

2。使用未声明的标识符'SelectClientNavController'

3。使用未声明的标识符'controller'


对于这一行:

controller.managedObjectContext = self.managedObjectContext;

1。在“MainAppDelegeate ”类型的对象上找不到属性“managedObjectContext”*

2。使用未声明的标识符'controller'


如何修复上述错误。


1 个答案:

答案 0 :(得分:5)

我也很快就要做到这一点,所以这里是:你不能在故事板中做到这一点。代码最好放在您的应用程序委托实现文件(AppDelegate.m)中。 。找到方法“ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions”并将其更改为如下所示。您只需添加一行代码。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // Override point for customization after application launch.
    UINavigationController *navigationController = (UINavigationController *)self.window.rootViewController; // this line is probably already there for you
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"yourBackGroundImage.png"] forBarMetrics:UIBarMetricsDefault]; //this adds the image
    return YES;
}

“yourBackGroundImage.png”是你的形象。确保已将图像添加到项目中。

我相信这只适用于IOS 5.