xcode尝试使用图像设置后退按钮

时间:2014-07-22 22:25:40

标签: ios objective-c

我想为我的后退按钮设置一个图像,但是我的代码设置为app delegate是我的主视图控制器。

这是app委托控制器代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

- (void)viewDidLoad

{

    [super viewDidLoad];

    UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"backButton" style:UIBarButtonItemStylePlain target:nil action:nil];

    self.navigationItem.backBarButtonItem = [backButtonItem];

}

-(void)customAppearance
{
    UIImage* backButton =[UIImage imageNamed:@"backButton"];
    [[UIBarButtonItem appearance] setBackButtonBackgroundImage:backButton forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];
}

2 个答案:

答案 0 :(得分:1)

最好的方法是使用 UIAppearance 在全球范围内进行。

[[UIBarButtonItem appearance] setBackButtonBackgroundImage:yourImage
                                                  forState:UIControlStateNormal
                                                barMetrics:UIBarMetricsDefault];

答案 1 :(得分:0)

我认为我从未见过任何在app委托中创建视图的代码。我只是看了一堆来自Apple和其他人的代码示例,他们都创建了由app delegate调用的视图。所以我要做的第一件事是使用Xcode模板创建一个新项目来决定你想要什么样的项目。例如,在我的一个应用程序中,我使用标准导航控制器转到条目视图。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        EntryViewController *evc = [[EntryViewController alloc]    initInManagedObjectContext:self.managedObjectContext];
        self.navigationController = [[UINavigationController alloc] initWithRootViewController:evc];

        self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
return YES;

然后在你的第一个视图中(在我的情况下是它的EntryViewController)你想把后面的按钮的代码。

- (void)viewDidLoad {

    [super viewDidLoad];

    UIImage *image = [UIImage imageNamed:@"backButton.png"];
            [self.navigationController.navigationBar setBackgroundImage:image forBarMetrics:UIBarMetricsDefault];
    // More stuff
}