Вы можете использовать UIWebView в новом контроллере представления, запущенном с помощью селектора pushViewController navigationController, и иметь элемент панели инструментов для «Просмотр в Safari», который запустит полный браузер Safari (и поместит ваше приложение в фоновый режим / завершит работу).
Некоторые примеры фрагментов кода:
Предположения:
(1) У вас есть контроллер представления, озаглавленный: WebViewController (с тем же .xib) файлом.
(2) Этот контроллер представления имеет UIView, который является подпредставлением основного вида;
@interface WebViewController: UIViewController <UIWebViewDelegate> {
UIWebView *webview;
NSString *someUrlToLoad;
}
@property (nonatomic, retain) IBOutlet UIWebView *webview;
@property (nonatomic, copy) NSString *someUrlToLoad;
В этом представлении метод viewDidLoad контроллера:
-(void) viewDidLoad {
[super viewDidLoad];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.someUrlToLoad]]];
}
Вы загружаете этот контроллер, когда кто-то нажимает на ячейку в вашем табличном представлении:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
WebViewController *viewController = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil];
viewController.someUrlToLoad = <url for this cell>;
[self.navigationController pushViewController:viewController animated:YES];
[viewController release];
}
Скорее всего, вы захотите включить некоторый хук в UIWebViewDelegate, чтобы остановить / показать индикатор активности на панели навигации, чтобы пользователь знал, что что-то происходит во время загрузки страницы.