비디오: 완전 편리! 아이폰 아이패드 속으로 파일이 자동 다운로드! Documents Sync 기능 사용하기 2024
브라우저를 사용하지 않고 앱에 실제 웹 콘텐츠를로드하는 iOS 앱의보기에 대한 재미있는 점은 링크가 활성화되어 있고 사용자가 해당 링크를 볼 수있는 경우 해당 링크를 따라갈 수 있습니다. 날씨 웹 사이트에있는 사용자는 왼쪽 상단 모서리에있는 NWS New York, NY 링크를보고 싶을 수 있습니다. 사용자가 해당 링크를 따라 가면 원래 페이지로 돌아갈 방법이 없습니다.
원래보기로 되돌아 갈 수 있으려면 다른 단추를 작성하여 다시 날씨 (또는 이전 컨트롤러가 무엇이든)로 레이블을 지정하여 사용자가 이전보기로 돌아갈 수 있음을 알고 있어야합니다 전망. 이 단추를 만드는 것은 매우 쉽습니다.
어쩌면 사용자가 원래 웹 페이지에있을 때 해당 버튼을 팝업하고 싶지 않을 수도 있습니다. 그 시점에서 뒤로 돌아 가지 않기 때문입니다. 그럼, 전체 탐색 링크 구조에서 누가 어디에 있는지 추적 할 수 있습니까? 여기에서는 두 개의 웹 뷰 대리자 메소드 인 webView: shouldStartLoadWithRequest: navigationType: 및 webViewDidFinishLoad:가 도움을받습니다.
먼저 WeatherController에 굵게 표시된 코드를 추가하여 UIWebView 프로토콜을 채택하십시오. h.
#import "DetailViewController. h"@interface WeatherController: DetailViewController @property (weak, nonatomic) IBOutlet UIWebView * weatherView; -d
위임 프로토콜을 채택하면 컴파일러는 필요한 모든 메소드가 실제로 있고 모든 유형이 올바른지 확인합니다.
if (navigationType == UIwebViewNavigationTypeLinkClicked) {
그러면 iPad를 사용하고 있는지 확인합니다. iPad를 사용 중이라면 툴바를 사용하지만 iPhone에서는 탐색 바를 사용합니다.
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) <> 999 iPad를 사용 중이며 사용자가 링크를 클릭 한 경우 사용자가 돌아올 수 있도록 뒤로 버튼이 있어야합니다. 거기에 하나 있다면, 당신은 두 번째를 추가하고 싶지 않아. 따라서 도구 모음에서 items 배열을 보면 자체인지 확인할 수 있습니다. backButton이 이미 있습니다.
if (! [self. toolbar. items containsObject: self. backButton])
거기에 뒤로 버튼이 없다면이를 수행하기위한 표준 코드를 추가합니다. 도구 모음의 itms 배열을 itemsArray라는 가변 배열. 그런 다음 뒤로 버튼을 추가하고 도구 모음의 배열을 변경 가능한 항목 배열로 바꿉니다.addObject: self입니다. backButton];
[자기. toolbar setItems: itemsArray animated: NO];}
다음으로 goBack: 메서드를 WeatherController 파일에 추가합니다. 엠.
Back to
버튼을 누를 때 보낸 메시지입니다.- (void) goBack: (id) sender {[자기. weatherview goBack];}
마지막으로 원본 페이지를 표시 할 때
무엇이든 로 돌아 가기 버튼을 없애기를 원합니다. 여기에 그 코드가 있습니다. - (void) webViewDidFinishLoad: (UIWebView *) webView {if ([self. weatherView canGoBack] == NO) {NSUInteger backButtonIndex = [self. 도구 모음. 항목 indexOfObject: 자기 backButton]; {itemBuffer ();} {itemBuffer ();} {itemBuffer ()} {itemBuffer ()} {itemBuffer ()} {itemBuffer ()} {itemBuffer [
뷰가로드 된 후 위임자에게 webViewDidFinishLoad: 메시지가 전송됩니다.이 시점에서 진행할 작업이 있는지 여부를 확인합니다. (웹보기는 이러한 종류의 항목을 추적합니다.) 아니라면 도구 모음이나 탐색 모음에서 단추를 제거하십시오.