使用链接隐藏/显示UIToolbar / Navbar

时间:2012-03-25 19:18:47

标签: ios uiwebview

我在我的应用程序中使用了Photoswipe,它工作得非常好。现在我有一个工具栏和一个导航栏,因此当在“全屏”中查看照片时,工具栏和导航栏仍然可见,因此它实际上不是全屏。我想知道是否可以隐藏/显示工具栏/导航栏,具体取决于点击/关闭图像的时间。

我发现这会隐藏工具栏

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
    if (navigationType == UIWebViewNavigationTypeLinkClicked) {

        self.navController.hidden = YES;

    }
    return YES;
}

到目前为止一切顺利,但是当用户点击Photoswipe中的退出按钮时,如何让工具栏返回(这只是另一个链接)?

感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我倾向于发现依赖于UIWebViewNavigationTypeLinkClicked或者任何类型的webView:shouldStartLoadWithRequest:会给你不一致的结果。我建议使用JSBridge,您可以使用它创建将传递给Cocoa的字典对象。有了这个,您可以保证捕获事件并使用自定义信息加载事件。

为此,您创建一个JSBridgeWebView(UIWebView的子类)并设置要处理的委托:

-(void) webView:(UIWebView*)webView didReceiveJSNotificationWithDictionary:(NSDictionary*) dictionary { 
    NSLog(@"Received notification dictionary %@", dictionary);
}

然后添加一个快速的JavaScript函数:

function sendShowToolBarNotification() { 
    var obj = new JSBridgeObj();
    obj.addObject("eventName", "showToolBar");
    obj.sendBridgeObject();
}

现在您可以拥有一个链接,将此通知发送到您的应用程序:

<a href="javascript:sendShowToolBarNotification()">Click here to show toolbar</a>
相关问题