我有一个非故事板应用程序,它有一个带有一堆单元格的 UITableView,在单击一个单元格时,我推送一个带有 UIWebView 的视图控制器,本地 html 文件根据被点击的单元格加载。
如果此 UIWebView 中还有其他链接,我将使用 UIWebView 委托方法 shouldStartLoadWithRequest 以及此代码:
if(navigationType == UIWebViewNavigationTypeLinkClicked) {
//When a html link is clicked in uiwebview
NSURL *url = request.URL;
NSString *urlString = url.absoluteString;
//Get components of url
NSArray *urlComponents = [urlString componentsSeparatedByString:@"/"];
//Get last component which should be wanted file name
NSString *wantedLink = [urlComponents objectAtIndex:[urlComponents count]-1];
//Get the url without the dot
NSArray *fileComponents = [wantedLink componentsSeparatedByString:@"."];
NSString *wantedFile = [fileComponents objectAtIndex:0];
ALSDetailViewController *superDetail = [[ALSDetailViewController alloc] initWithNibName:@"ALSProtocolDetailViewController" bundle:nil];
self.alsProtocolDetailViewController = superDetail;
//Check for each wanted file name to see if it matches another file
if ([wantedLink isEqualToString:@"VTachPulseStable.html"]) {
//Open different protocol xib with html file name as parameter, and push the view in
self.alsProtocolDetailViewController.title = @"Ventricular Tachycardia With Pulse";
self.alsProtocolDetailViewController.protocolURL = wantedFile;
self.alsProtocolDetailViewController.protocolSubTitle = @"Stable Without Decompensation";
[self.navigationController pushViewController:self.alsProtocolDetailViewController animated:YES];
return NO;
}
}
此代码来自我工作的旧非故事板应用程序。
基本上,它使用新的 loadRequest 重新加载当前所在的相同视图并将其推送到堆栈顶部,因此用户可以返回上一个 loadRequest。
现在有了故事板,我不知道如何用 segue 完成相同的功能,我需要调用这些操作并将控制器推送到堆栈上。
我试过 performSegueWithIdentifier 但没有运气。
如果我对 webview 使用 NSURL 加载请求而不在堆栈上推送视图控制器的新实例,则它可以工作。
但我需要用户能够返回。
有什么想法可以做到这一点吗?