今回は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 件のコメント:
コメントを投稿