2012-03-25 37 views
1

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

我发现这里面会隐藏工具栏

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

     self.navController.hidden = YES; 

    } 
    return YES; 
} 

到目前为止好,但我如何才能在工具栏当用户点击Photoswipe(这是必不可少的只是一个链接退出按钮)?

任何帮助表示赞赏!

回答

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>