2011年12月7日

iPhoneでUINavigationControllerを使う(1)

今回は初のiPhone解説です。

iPhoneは私もまだまだ始めたばかりで詳しくはありませんが、
出来た部分を解説していこうと思います。

Androidと違い、iPhoneの画面遷移にはいろいろありますが、
[設定]ボタンと[戻る]ボタンでメイン画面と設定画面を遷移する構成で
UINavigationControllerの解説をしたいと思います。


まずはプロジェクトの作成。

Xcodeはころころ仕様が変わりますが、
とりあえずEmptyで作成します。
(それなら今後も迷わないでしょう)

AppDelegateが出来ると思います。
まず、MainとなるUIViewControllerとSubとなるUIViewControllerを作成します。

[File]→[New]→[New File]→[Subclass of UIViewController]
で名前を決めます。
MainViewとSubViewとしときます。

AppDelegateからはMainViewを呼び出し、
Mainからは右上に配置する[設定]ボタンを押したときに
SubViewへ遷移するようにします。

まずはAppDelegate.hから編集します。

AppDelegate.h

#import <UIKit/UIKit.h>

@class MainViewController;

@interface AppDelegate : UIResponder <uiapplicationdelegate>
{
  UIWindow *window;
  UINavigationController *navController;
  MainViewController *mainViewController;
}

@property (nonatomic, retain) UIWindow *window;

@property (nonatomic, retain) UINavigationController *navController;

@property (nonatomic, retain) MainViewController *mainViewController;

@end
とこんな感じです。

次はAppDelegate.mを編集します。

AppDelegate.m

#import "AppDelegate.h"
#import "MainViewController.h"

@implementation AppDelegate

@synthesize window = _window;

@synthesize navController = _navController;

@synthesize mainViewController = _webViewController;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // make window
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor blackColor];
    // Override point for customization after application launch.
    // make main view
    self.mainViewController = [[MainViewController alloc] initWithNibName:nil bundle:nil];
    // make navigation controller
    self.navController = [[UINavigationController alloc] initWithRootViewController:self.mainViewController];
    // show navigation bar
    [self.navController setNavigationBarHidden:NO];
    // hide tool bar
    [self.navController setToolbarHidden:YES];
    // add sub view
    [self.window addSubview:self.navController.view];
    [self.window makeKeyAndVisible];
    
    return YES;
}

これで、とりあえず第1ステップ終了です。

続きは次回(多分、今日の更新はありません)