そのため、モーダル ビューがあり、ユーザーがコンテンツの読み取りを終了したときにこのビューを閉じるために、[完了] ボタンを使用して UINavigationBar をプログラムで追加したいと考えています。
これを行う方法と、インターフェースビルダーを使用せずに純粋に可能かどうかについてのアイデアはありますか?
そのため、モーダル ビューがあり、ユーザーがコンテンツの読み取りを終了したときにこのビューを閉じるために、[完了] ボタンを使用して UINavigationBar をプログラムで追加したいと考えています。
これを行う方法と、インターフェースビルダーを使用せずに純粋に可能かどうかについてのアイデアはありますか?
ここで誰もあなたの質問を実際に読んでいないことを残念に思います...これがあなたが探しているコードです:
UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];
navBar.backgroundColor = [UIColor whiteColor];
UINavigationItem *navItem = [[UINavigationItem alloc] init];
navItem.title = @"Navigation Bar title here";
UIBarButtonItem *leftButton = [[UIBarButtonItem alloc] initWithTitle:@"Left" style:UIBarButtonItemStylePlain target:self action:@selector(yourMethod:)];
navItem.leftBarButtonItem = leftButton;
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithTitle:@"Post" style:UIBarButtonItemStylePlain target:self action:@selector(yourOtherMethod:)];
navItem.rightBarButtonItem = rightButton;
navBar.items = @[ navItem ];
[self.view addSubview:navBar];
これが役立つことを願っています、幸運を祈ります:)
このコードを viewDidLoad メソッドに追加すると、すべてが自動的に構築されます。セレクターを独自のメソッドシグネチャに置き換えてください-
ハッピーコーディング
それは間違いなく可能です。
おそらく最も簡単な方法は、UIViewController
モーダルに表示しているを に埋め込み、ボタンをUINavigationViewController
追加して、次のようにすることです。Done
UIBarButtonItem * doneButton = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemDone
target:self
action:@selector(dismiss)];
self.navigationItem.rightBarButtonItem = doneButton;
dismiss
そして、次のようなメソッドを実装します
- (void)dismiss {
[self.presentingViewController dismissViewControllerAnimated:YES
completion:nil];
}
//add done button to navigation bar
UIBarButtonItem *doneBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(userPressedDone)];
self.navigationItem.rightBarButtonItem = doneBarButtonItem;
次に、View Controllerのどこかにこのようなメソッドを用意します
-(void)userPressedDone {
// Action For Done Button Tapped
}