私のRootViewControllerでは、画像をまさにこのようにrightBarButtonItemとして設定しましたが、作成したこの2番目のViewControllerでは、この「戻る」ボタンは表示されません。シミュレーターとiPhoneで実行すると、ボタンが表示されるはずの領域をタップして、goBack{}メソッドが呼び出されます。画像だけが表示されていません。何かご意見は?
また、画像に関しては、他のすべての画像をエクスポートするのとまったく同じ方法でエクスポートしています。他のすべてはうまく働いています。戻るボタンの画像を他のいくつかの画像に置き換えましたが、どれも表示されていないため、画像に問題はないようです。私はこれらの画像を正しい順序で作成していると確信しています。とにかく、どんな助けでも大歓迎です。
NewGameViewController.mファイルから:
- (void)viewDidLoad {
[super viewDidLoad];
CGFloat startingPoint = 0.0;
CGRect bounds = self.view.bounds;
bounds.origin.y = startingPoint;
bounds.size.height -= startingPoint;
self.ivarNewGameTableView = [[UITableView alloc] initWithFrame:bounds style:UITableViewStyleGrouped];
self.ivarNewGameTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
self.ivarNewGameTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self.view addSubview:self.ivarNewGameTableView];
UIImageView *backgroundImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
self.ivarNewGameTableView.backgroundView = backgroundImageView;
UIImage *mainNavBar = [UIImage imageNamed:@"startNewGameNavBar.png"];
UIImageView *navBarView = [[UIImageView alloc] initWithImage:mainNavBar];
[navBarView setFrame:CGRectMake(0.0, 0.0, 320.0, 44.0)];
[self.navigationController.navigationBar addSubview:navBarView];
UIButton *back = [UIButton buttonWithType:UIButtonTypeCustom];
// neither one of the following lines work. I know they're supposed to be identical, but
// seen Xcode be picky.
back.frame = CGRectMake(0.0, 0.0, 54.0, 36.0);
// [back setFrame:CGRectMake(0.0, 0.0, 54.0, 36.0)];
[back addTarget:self action:@selector(goBack) forControlEvents:UIControlEventTouchUpInside];
[back setImage:[UIImage imageNamed:@"back.png"] forState:UIControlStateNormal];
[back setImage:[UIImage imageNamed:@"backTouched.png"] forState:UIControlStateHighlighted];
UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithCustomView:back];
self.navigationItem.leftBarButtonItem = backButton;
}
-(void)goBack {
NSLog(@"goBack called.");
// [self.ivarNewGameTableView pushViewController:];
}