&tag(Objective-C, UIKit);
*目次 [#l3e91e9b]
#contents

*プログラムで追加する [#b8d44353]
-[[iOS: Xcode 4.2 and Navigation Controller - Stack Overflow:http://stackoverflow.com/questions/8606825/ios-xcode-4-2-and-navigation-controller]]
-[[iPhone Dev Tips: Navigation and Tap Bar Controller « Theolternative’s Weblog:http://theolternative.wordpress.com/2009/04/27/iphone-dev-tips-navigation-and-tap-bar-controller/]]

-UINavigationControllerのインスタンスを忘れずreleaseするようにしないとだめ。サンプルでinitはしてるがreleaseしてないものがたくさんみつかるので注意。
#pre{{
- (void)applicationDidFinishLaunching:(UIApplication *)application 
{
   navController=[[UINavigationController alloc] init];
   MyViewController *firstController=[[MyViewController alloc] init];
   [navController pushViewController:firstController animated:NO];
   [window addSubview navController.view];
} 
- (void) dealloc
{
   ...  
   [navController release];
   ...
}
}}
*ボタンの追加 [#l6a47c0b]
**バーの右側に"+"ボタンを追加 [#bd62954c]
-self.navigationItem.rightBarButtonItemにUIBarButtonItemを設定すればよい。
#pre{{
- (void)viewDidLoad {
    [super viewDidLoad];
    //"+"ボタンを生成
    UIBarButtonItem *newButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(newPushed)];
    //右側のボタンにセット
    self.navigationItem.rightBarButtonItem = newButton;
    // わすれずrelease。最初にautoreleaseしておくのでも良い。
    [newButton release];
}
}}

**バーの右側にアクションボタンを追加してアクションシートを表示 [#t54a7f56]
-アクションボタンを押す→UIActionSheetを表示→UIActionSheet上のボタンが押されたときの処理。
#pre{{
- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    [self configureView];
    
    UIBarButtonItem *actionButton = [[[UIBarButtonItem alloc] 
                                      initWithBarButtonSystemItem:UIBarButtonSystemItemAction 
                                      target:self 
                                      action:@selector(actionPushed)] autorelease];
    self.navigationItem.rightBarButtonItem = actionButton;
}

- (void)actionPushed {
    UIActionSheet *sheet = [[[UIActionSheet alloc] init] autorelease];
    sheet.delegate = self;
    [sheet addButtonWithTitle:@"テスト1"];
    [sheet addButtonWithTitle:@"テスト2"];
    [sheet addButtonWithTitle:@"Cancel"];
    sheet.cancelButtonIndex = 2;
    [sheet showInView:self.view];
}


- (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {
        NSLog(@"テスト1が押されました");
    } else if (buttonIndex == 1) {
        NSLog(@"テスト2が押されました");
    }
}
}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS