Открыть ссылку в UIWebView в Safari - PullRequest
0 голосов
/ 16 марта 2011

Я работаю над приложением, которое получает фид, который отображается в UIWebView. Канал содержит встроенные ссылки, которые я хочу открыть в Safari вместо w WebView. Я просмотрел несколько других вопросов, которые размещены здесь. Я не уверен, что мне не хватает, но я думаю, что это что-то простое. Вот мои файлы .h и .m

#import 
@class BlogRss;


@interface EnduranceDailyWorkoutViewController : UIViewController {
    IBOutlet UIWebView * descriptionTextView;
    BlogRss * currentlySelectedBlogItem;
}

@property (nonatomic, retain) UIWebView * descriptionTextView;
@property (readwrite, retain) BlogRss * currentlySelectedBlogItem;
@end
#import "EnduranceDailyWorkoutViewController.h"
#import "BlogRss.h"

@implementation EnduranceDailyWorkoutViewController


@synthesize descriptionTextView = descriptionTextView;
@synthesize currentlySelectedBlogItem = currentlySelectedBlogItem;

- (void)viewDidLoad {
    [super viewDidLoad];
    NSString *html = [NSString stringWithFormat:@"%@ %@",currentlySelectedBlogItem.title, currentlySelectedBlogItem.contentEncoded];
    [descriptionTextView loadHTMLString:html baseURL:[NSURL URLWithString:nil]];

}

-(BOOL)webView:(UIWebView *)descriptionTextView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    if (UIWebViewNavigationTypeLinkClicked == navigationType) {
        [[UIApplication sharedApplication] openURL:[request URL]];
        return NO;
    }
    return YES;
}

Используя Interface Builder, я связал IBOutlet и UIWebView. Пожалуйста, дайте мне знать, что мне не хватает. Я поместил точки останова в раздел webView, но код никогда не попадет туда, поэтому это похоже на то, что что-то не правильно связано в IB.

1 Ответ

1 голос
/ 16 марта 2011

Вы должны убедиться, что делегат UIWebView настроен на ваш контроллер. Вы можете сделать это в конструкторе интерфейсов или изменить свой метод viewDidLoad:

- (void)viewDidLoad {
    [super viewDidLoad];
    // add this line to set the delegate of the UIWebView
    descriptionTextView.delegate = self;
    NSString *html = [NSString stringWithFormat:@"%@ %@",currentlySelectedBlogItem.title, currentlySelectedBlogItem.contentEncoded];
    [descriptionTextView loadHTMLString:html baseURL:[NSURL URLWithString:nil]];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...