私はMainControllerとdetailedcontrollerを持っています。本の選択をポップオーバーして本を選択すると、detailcontroller は本の記事を含む UIWebView を表示します。
@interface IpadBooksViewController : UITableViewController {
SearchResult *searchResult;
IpadArticleViewController *detailController;
IpadMainViewController *mainController;
UIPopoverController *popover;
}
UIWebView に、メール アイコンを表示し、スキームをキャッチします。
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSURL *url = [request URL];
NSString *scheme = [url scheme];
NSString *host = [url host];
if ([[url description] hasSuffix:@"next"]) {
NSLog(@"next Show");
}
BOOL isShareLinks = [host isEqualToString:@"displayShareLinks"];
BOOL isFavoriteLinks = [host isEqualToString:@"displayFavoriteLinks"];
if ([@"myappurl" isEqualToString:scheme] && (isShareLinks || isFavoriteLinks)) {
self.selectedArticleNumber = [url.path lastPathComponent];
if (isShareLinks) {
[self sendMailArticleNumber:selectedArticleNumber];
} else if (isFavoriteLinks) {
NSLog(@"ipad favorite clicked");
[self toggleFavorite:selectedArticleNumber];
Broker *broker = [[Broker alloc] init];
[broker loadProjects:self];
[broker release];
}
}
return [super webView:webView shouldStartLoadWithRequest:request navigationType:navigationType];
}
アクションは、UIWebView の下に MFMailController を表示することになっていますが、何も表示されずにエラー メッセージが表示されます。
- (void) sendMailArticleNumber:(NSString *)articleNumber {
MFMailComposeViewController* composer = [[MFMailComposeViewController alloc] init];
composer.mailComposeDelegate = self;
[composer setSubject:@"Article"];
NSString *messageBody = [Article fetchBody:articleNumber bookId:bookId];
[composer setMessageBody:messageBody isHTML:YES];
[self presentModalViewController:composer animated:YES];
[composer release];
}
どんな助けでも大歓迎です。ポップオーバーの作成を試みましたが、addView atIndex は成功しませんでした...さらにコードが必要な場合はお知らせください。
デビッド