ナビゲーション バーのタイトルとして UIButton (「about」情報を提供するため) を使用して、ナビゲーション ベースのアプリをセットアップしようとしています。ボタンをタイトルとして簡単に確立できますが、どこでそれを行うべきかがわからないため、永続的です(新しいviewControllerが呼び出されるたびにナビゲーションバーがスライドしません)。これが私の現在のコードです:
AppDelegate.h
@class ViewController;
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController;
@end
AppDelegate.m
#import "AppDelegate.h"
#import "ViewController.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPhone" bundle:nil];
} else {
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController_iPad" bundle:nil];
}
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:self.viewController];
self.window.rootViewController = navController;
[self.window makeKeyAndVisible];
return YES;
}
ViewController.m
- (void)viewDidLoad
{
[super viewDidLoad];
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(100, 4, 120, 36);
[button setImage:[UIImage imageNamed:@"logo_1.png"] forState:UIControlStateNormal];
[button addTarget:self action:@selector(about) forControlEvents:UIControlEventTouchUpInside];
self.navigationItem.titleView = button;
// Do any additional setup after loading the view, typically from a nib.
}
明確にするために、「viewDidLoad」のコードは正常に機能します-開始時に設定して永遠に持続させたいだけです(実際のメソッドにシングルトンを使用しても問題ありません-再ロードしたくないだけです)。
私はサイトを掘り下げて数時間いじくり回してきましたが、これを機能させることができないようです。助けてくれてありがとう。