今回はMainViewを中心に解説します。
分からない事がありましたら質問してください。
If you have any questions, please ask.
まずはheaderファイルから。
今回のMainViewはほぼWebViewといたします。
上段にタイトルバーを用意し、右上にボタンだけの簡単な設定とします。
MainViewController.h
#import <UIKit/UIKit.h> @interface MainViewController : UIViewController { IBOutlet UIWebView *webView; } @property (nonatomic, retain) UIWebView *webView; @endこれでヘッダは終わり。
InterfaceBuilderを使用するのはwebViewのみとします。
ほかはプログラムで配置していきます。
MainViewController.m
#import "MainViewController.h" #import "SubViewController.h" @implementation MainViewController @synthesize webView = _webView; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization // set title self.title = NSLocalizedString(@"title_main", @"Title"); // set button UIBarButtonItem *btn_settings = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"btn_settings", @"Settings") style:UIBarButtonItemStyleBordered target:self action:@selector(subView:) ]; self.navigationItem.rightBarButtonItem = btn_settings; // set web view self.webView = [[UIWebView alloc] init]; self.webView.scalesPageToFit = YES; [self.view addSubview:self.webView]; } return self; }このプログラム内ではまず、タイトルを設定。
NSLocalizeString()で設定してあるのは、後で多言語対応する為です。
とりあえず日本語だけでも問題ありませんが、プログラム上に日本語を書くのが嫌いなので書いていません。
(全角/半角とかコーディング中は控えたい)
次に設定ボタンを設置しております。
UIBarButtonItemでインスタンスを生成。
ここで、押されたときに動作するアクションを指定しております。
今回はsubViewというアクションを指定してあります。
それをnavigationItemの右側に設置と指定してあります。
(rightBarButtonItemですね)
最後にメインとなるUIWebViewを設置します。
ここは省きます。
最後にアクション(subView)の設定
MainViewController.m
// action when btn_setting was pressed - (void)subView:(id)sender { // make a view controller SubViewController *subViewController = [[SubViewController alloc] initWithNibName:nil bundle:nil]; // set title subViewController.title = NSLocalizedString(@"title_settings", @"設定"); // back btn settings UIBarButtonItem *btn_back = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"btn_back", @"Back") style:UIBarButtonItemStyleBordered target:nil action:nil ]; [self.navigationItem setBackBarButtonItem:btn_back]; // move to this view [self.navigationController pushViewController:subViewController animated:YES]; // release btn_back = nil; subViewController = nil; }
アクションの解説をいたします。
ボタンを押されたあと、まずSubViewのコントローラのインスタンスを生成します。
次にタイトルを設定。
さらに、バックボタンを生成し、
SubViewへ遷移します。
[self.navigationController pushViewController:subViewController animated:YES]
で次のViewを呼び出しています。
以上です。
こんな感じで次回もよろしくお願いします。
0 件のコメント:
コメントを投稿