Скрыть / показать UIToolbar / Navbar, используя ссылку - PullRequest
1 голос
/ 25 марта 2012

Я использую Photoswipe в своем приложении, и оно работает очень хорошо.Прямо сейчас у меня есть панель инструментов и панель навигации, поэтому при просмотре фотографий в «полноэкранном режиме» панель инструментов и панель навигации по-прежнему видны, поэтому на самом деле она не является полноэкранной.Мне, однако, интересно, можно ли было скрыть / показать панель инструментов / панель навигации в зависимости от того, когда изображение было щелкнуто / отклонено.

Я нашел это, что скроет панель инструментов

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

        self.navController.hidden = YES;

    }
    return YES;
}

Пока все хорошо, но как мне вернуть панель инструментов назад , когда пользователь нажимает кнопку выхода в Photoswipe (что важно, просто еще одна ссылка)?

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 27 марта 2012

Я склонен считать, что использование UIWebViewNavigationTypeLinkClicked или любого другого вида webView: shouldStartLoadWithRequest: приведет к противоречивым результатам.Я рекомендую использовать JSBridge , с помощью которого вы можете создать объект словаря, который будет передан в Какао.При этом вы можете гарантировать захват события и загрузить свое событие с пользовательской информацией для него.

Для этого вы создаете 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...