UIWebView и навигационный контроллер - PullRequest
4 голосов
/ 21 марта 2011

Как я могу сказать своим UIWebView об открытии ссылок в новом представлении, используя UINavigationController?

Я нашел эту ветку, но я немного запутался, где реализовать этот фрагмент кода (яновинка для target-C / IPhone)

Щелчок по ссылке в UIWebView помещает в стек NavigationView

мое представление содержит просто WebView с UINavigationControllerсверху

#import <UIKit/UIKit.h>


@interface ContactViewController : UIViewController {

    IBOutlet UIWebView *webView1;
}

@property (nonatomic, retain) UIWebView *webView1;

Ответы [ 2 ]

6 голосов
/ 21 марта 2011

Вот шаги, предполагающие, что ваш контроллер представления (который содержит веб-представление) уже находится внутри контроллера навигации.

Внутри .h - убедитесь, что ваш контроллер представления соответствует делегату веб-просмотра

UIViewController <UIWebViewDelegate>

В .m - добавить следующий код (или просто реализовать этот метод с любой логикой, которую вы хотите)

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
if (navigationType == UIWebViewNavigationTypeLinkClicked) {
    YourNextViewController *ynvc = [[[YourNextViewController alloc] initWithNibName:@"YourNextViewController" bundle:nil] autorelease];
    ynvc.ivar1 = value1;
    ynvc.ivar2 = value2;

    UIBarButtonItem *backButton = [[[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:nil action:nil] autorelease];
    [[self navigationItem] setBackBarButtonItem:backButton];

    [self.navigationController pushViewController:ynvc animated:YES];

    return NO;
}
return YES;}
0 голосов
/ 21 марта 2011

Я тоже довольно плохо знаком с объективом C / iPhone, но то, что я хотел бы попробовать, ..

Создаю новый viewController для вашего веб-просмотра и помещаю его в ваш UINavigator

yourWebViewController *y =  [[yourWebViewController alloc] init];
[self.navigationController pushViewController:y animated:YES];
[y release];
...