你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS開發:給UIWebview導航欄添加前往與封閉按鈕

iOS開發:給UIWebview導航欄添加前往與封閉按鈕

編輯:IOS開發綜合

在IOS開發中,難免有原生與H5的交互,比方說:從原生頁面的一個按鈕,點擊之後跳轉到了一個H5的頁面A,A頁面中又有一個按鈕,點擊之後,又加載了一個新的H5頁面B,從B點擊一個按鈕,又加載一個新的H5頁面C,假如此時我們點擊左上角的前往按鈕,會直接前往到我們的原生頁面。這樣的話,用戶的體驗很不好,我們需求對WebView停止添加按鈕事情的處置。

此時,想要重新定制前往按鈕,想要從C頁面判別能否還有上一級H5頁面可供前往,假如有上一級頁面還是H5,點擊左上角的前往則前往到B頁面,並且在B頁面的左上角加上一個封閉按鈕,這個封閉按鈕的作用次要是為了封閉一切的H5的頁面,直接前往到原生的頁面;假如不點擊封閉按鈕,還是點擊前往,則從B頁面前往到A頁面;再次點擊前往,則封閉了H5的頁面,回到了原生的頁面。

首先是初始化一個WebView:
@property (nonatomic,strong,readwrite) UIWebView *announceWebView;

 - (UIWebView *)announceWebView {
    if (!_announceWebView) {
        _announceWebView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, deviceScreenWidth, deviceScreenHeight)];
        _announceWebView.backgroundColor = MAIN_VIEW_COLOR;
        _announceWebView.scalesPageToFit = YES;
        _announceWebView.allowsInlineMediaPlayback = YES;
        _announceWebView.mediaPlaybackRequiresUserAction = YES;
        [self.view addSubview:self.announceWebView];
    }
    return _announceWebView;
}
其次,在導航欄的右邊添加一個自定義前往按鈕和封閉按鈕:
@property (nonatomic,strong,readwrite) UIBarButtonItem *returnButton;
@property (nonatomic,strong,readwrite) UIBarButtonItem *closeItem;

 - (UIBarButtonItem *)returnButton {
    if (!_returnButton) {
        _returnButton = [[UIBarButtonItem alloc] init];
        UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
        UIImage *image = [UIImage imageNamed:@"fanhui.png"];
        [button setImage:image forState:UIControlStateNormal];//這是一張“<”的圖片
        [button setTitle:@" 前往" forState:UIControlStateNormal];
        [button addTarget:self action:@selector(respondsToReturnToBack:) forControlEvents:UIControlEventTouchUpInside];
        [button.titleLabel setFont:[UIFont systemFontOfSize:17]];
        [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
        [button sizeToFit];
        button.contentHorizontalAlignment = UIControlContentHorizontalAlignmentLeft;
        button.contentEdgeInsets = UIEdgeInsetsMake(0, -15, 0, 0);
        button.frame = CGRectMake(20, 0, 40, 40);
        _returnButton.customView = button;
        self.navigationItem.leftBarButtonItem = _returnButton;
    }
    return _returnButton;
}

 - (UIBarButtonItem *)closeItem {
    if (!_closeItem) {
        _closeItem = [[UIBarButtonItem alloc] initWithTitle:@"封閉" style:UIBarButtonItemStyleDone target:self action:@selector(respondsToReturnToFind:)];
    }
    return _closeItem;
}
兩個按鈕的點擊事情處置
 - (void)respondsToReturnToBack:(UIButton *)sender {
    if ([self.announceWebView canGoBack]) {//判別以後的H5頁面能否可以前往
    //假如可以前往,則前往到上一個H5頁面,並在左上角添加一個封閉按鈕
        [self.announceWebView goBack];
        self.navigationItem.leftBarButtonItems = @[self.returnButton, self.closeItem];
    } else {
    //假如不可以前往,則直接:
        [self.navigationController popViewControllerAnimated:YES];
    }
}

 - (void)respondsToReturnToFind:(UIBarButtonItem *)sender {
    [self.navigationController popViewControllerAnimated:YES];
}
最後再用[self.announceWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:API_URL_ANNOUNCEMENT]]]加載出WebView界面內容以及完成相關的代理即可。

【iOS開發:給UIWebview導航欄添加前往與封閉按鈕】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved