カテゴリー別アーカイブ: c09_01:iPhoneアプリ

スプラッシュ画面のあとに自動的に消える画面を割り込ませる

グローバル定義とか使っちゃってるけどね。もっと上手い方法があるといいなあ。
viewDidLoadとかで

{
//略
//警告画面の表示(warning~はグローバル定義)
warningViewController = [[WarningViewController alloc] initWithNibName:@"WarningViewController" bundle:nil];
//スプラッシュ画面表示ウエイト(2秒)
[NSThread sleepForTimeInterval:2];
[self.view addSubview:warningViewController.view];
//警告画面表示タイマー(5秒)
[NSTimer scheduledTimerWithTimeInterval:5 target:self selector:@selector(warningErase:) userInfo:nil repeats:NO];
}

消す処理は別モジュール。

- (void)warningErase:(NSTimer *)timer {
[warningViewController.view removeFromSuperview];
}

一例として。

UIWebViewのHTMLとアプリの連携

iPhone4ユーザになりました。
iPhoneアプリの開発をはじめたので技術メモをしていきます。
Web検索してもなかなかズバリのかからないネタをニッチにひろっていきます。
初回のテーマは「UIWebViewに独自HTMLをおき、そこに含まれるリンクを触ったときの処理を引き取る」。
HTML側にリンクをはっておく。リンクが通る必要は無いので、テキトーなURLで。
ファイル名を解析するので、ファイル名部分は存在しないものを。
ソース側。ファイル名を定義。

NSString *infoPath = @"/info.htm.hogehogehoge"; 
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)rrequest
navigationType:(UIWebViewNavigationType)navigationType {
NSString *path = [[rrequest URL] path];
if ([path compare:infoPath] == NSOrderedSame) {
/* 処理 */
//return YES; にすれば普通にURLを表示するよ
return NO;
}
//そのほかのURLは普通に表示するよ
return YES;
}

ここでNOを返した場合エラー扱いになるので、これを拾いたくない場合は

- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
} 

に処理を定義しておく。
※ソースがまだうまく表現出来てないのでそのうちなんとかします