Sponsored Link
はい、やまさきです!
今日はUINavigationControllerのお話し
実は今作成中のアプリをxib使ったプロジェクトに差し替えようとせっせと書き直してるんだけど、どうもxibだとUINavigationControllerとUITableViewをうまく配置できないみたいで…
なので今日はコードべた書きでUINavigationControllerを配置する方法を説明します。
まず新規プロジェクトを立ち上げます。
次にプロジェクトの名前などを決めます。
そしてクラスの作成
ここではUIViewControllerクラスで作成しています。
するとこんな画面ができます。
次にFile > New > Fileから Objective-Cを選択し新しくクラスを作成します。
ここではNavigationViewControllerとします。
すると.hと.mファイルができました。
これをMainNavigationControllerAppDelegate.mでimportします。
importしたら次に
– (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
の中のself.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];の下に
// 作成した自作クラスのViewControllerを初期化して、メモリ確保
NavigationViewController *navicon = [[NavigationViewController alloc]init];
// UINavigationControllerクラスを初期化して、メモリ確保してからルートビューに自作クラスを設定
UINavigationController *uiNavicon = [[UINavigationController alloc]initWithRootViewController:navicon];
// 自作クラスを設定したUINavigationControllerをrootViewControllerに渡します
self.window.rootViewController = uiNavicon;
を追加します。
これで自作クラスのNavigationViewControllerクラスが起動時表示される事になります。
では実際にちゃんと自作クラスが表示されているか確認しましょう。
確認するために自作クラスにラベルでも貼って見てみます。
こんな感じでラベルを作成しました。
それではプログラム実行!
どうですか?ちゃんとラベルhogeでましたか?
出ていればこれで起動時の画面は出来たはず。
出来ていなければ最初から誤りがないか確認して下さい。
次に自作クラス2を作成しましょう。
今まではNavigationの1枚目の画面を作りましたが次は画面の移動先を作成します。
クラスはSecondViewControllerとします。
反転させている部分は消しています。(コードのみなので必要ない為)
さて、ここまでできたらようやくUINavigationControllerで画面遷移する為に必要な準備が整いました。
まず.hに#importを忘れない様に
その次に画面遷移前のNavigationViewController.mで下記のコードを追記します。
/**
* ナビゲーションコントローラーの初期化
*/
– (void)navigationControllerInitialization
{
// ナビゲーションバーの表示、非表示を切り替える
self.navigationController.navigationBarHidden = NO;
// ナビゲーションバーにタイトルを設定
self.navigationItem.title = @”NavigationController”;
// ナビゲーションバーに新規登録用のボタンを設置
UIBarButtonItem *_navigationButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAction
target:self
action:@selector(addButton:)];
self.navigationItem.leftBarButtonItem = _navigationButton;
}
/**
* ナビゲーションコントローラーのボタンが押されると動作する
*
* @param btn UIBarButtonItem
*/
– (void)addButton:(UIBarButtonItem *)btn
{
// 自作クラスのSecondViewControllerを初期化
SecondViewController *secondView = [[SecondViewController alloc]init];
// ナビゲーションコントローラー自身を使ってSecodViewControllerへ画面遷移する(アニメーション有り)
[self.navigationController pushViewController:secondView animated:YES];
}
これだけでSecondViewControllerに画面遷移します。
より分かりやすくする為にSecondViewControllerに色でも付けましょう
はい。完成!
分かりにくい部分あったらコメント下さい!
じゃんじゃん修正します!
ばいちゃ
ツイート