我想为我的后退按钮设置一个图像,但是我的代码设置为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];
}
答案 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
}