TL; DR: Мне нужно реализовать одноэлементный UIWebVIew, который делится на несколько ViewControllers. Вопрос содержит все мои подходы до сих пор.
AppDelegate:
@property (strong, nonatomic) UIWebView *singleWebView;
firstViewController:
@property (weak, nonatomic) IBOutlet UIWebView *webView;
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear: animated];
NSLog(@"Removing webview from the first VC");
[self.webView removeFromSuperview];
self.webView.delegate = nil;
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.singleWebView = self.webView;
self.webView = nil;
}
- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {
NSURL *URL = [request URL];
if ([[URL absoluteString] isEqualToString:@"myapp://postsShow"]) {
[self performSegueWithIdentifier:@"postsShowSegue" sender:self];
return false;
}
return true;
}
PostsShowViewController
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
[self.viewContainer addSubview: appDelegate.singleWebView];
}
В первом представлении контроллера я загружаю одностраничное приложение, в котором сначала отображается список сообщений. Затем пользователь просматривает один из сообщений, и он будет перенаправлен во второй контроллер просмотра. Я хочу повторно использовать UIWebView, который использовался в первом ViewController во втором ViewController, поэтому мне не нужно перезагружать веб-страницу.
Проблема заключается в том, что после addSubview
UIWebView не загружается. Я вижу только UIView
, который я использую в качестве контейнера. Было бы очень полезно, если бы вы могли дать мне несколько точек отладки.