美好的一天
我正在开发一个用于显示pdf文件的应用程序。我有两个viewController,ListViewController用于列出我的所有pdf和PdfViewController用于查看pdf。因此,当我从外部应用程序导入pdf文件时,我会立即将其保存在app委托中,名为application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
并导航到PdfViewController。
我现在的问题是:如果我已经在视图中使用pdf(PdfViewController),当我从appDelegate推送到PdfViewController时,它会在顶部添加堆栈并为listViewController创建一个双后退按钮。这是我在下面的app delegate中的代码。
_window = [UIApplication sharedApplication].keyWindow;
UIViewController *root = [_window rootViewController];
UIStoryboard *stbd = root.storyboard;
PTPdfViewController *viewController = (PTPdfViewController*) [stbd
instantiateViewControllerWithIdentifier:@"PTPdfViewController"];
[(UINavigationController*)self.window.rootViewController
pushViewController:viewController animated:NO];
如何用当前推送的pdfViewController替换当前打开的pdfViewController。提前谢谢。
答案 0 :(得分:0)
你可以通过两种方式来实现。
首先弹出到根视图控制器&然后再次推送到pdfviewcontroller
。 (不好主意)
获取Root视图控制器,获取当前可见的视图控制器如果它已经在pdfViewcontroller
中,只需用currentfile替换旧文件。如果当前视图控制器为listviewcontroller
,则只需按pdfviewcontroller
获取可见视图控制器
[UIApplication sharedApplication].keyWindow.visibleViewController
获取当前显示的VC。