- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我最近在我的 iOS 应用程序中遇到了一个令人毛骨悚然的情况,我试图从我的窗口的 rootViewController 中连续关闭一个呈现的 UIViewController
,使用:
[rootViewController dismissViewControllerAnimated:YES completion:NULL]
并在不久之后展示另一个(顺便说一下,以另一种方法),其中:
UIViewController *vc2 = [[[MyViewController2 alloc] initWithNibName:nil bundle:nil] autorelease];
[rootViewController presentViewController:vc2 animated:YES completion:NULL];
问题是,我永远无法让第二个 View Controller 显示出来。事实证明,据我所知,dismissViewControllerAnimated:completion:
需要“完成”时间的异步 block 才能通过,然后才能正常工作 presentViewController:animated:completion:
再次。 Apple's docs 中没有直接记录这一事实,据我所知。
我想出的解决方案是用一个方法包装解雇,该方法指定您之后要调用的选择器,如下所示:
- (void)dismissViewController:(UIViewController *)presentingController
postAction:(SEL)postDismissalAction
{
[presentingController dismissViewControllerAnimated:YES
completion:^{
[self performSelectorOnMainThread:postDismissalAction
withObject:nil
waitUntilDone:NO];
}];
}
然后我会调用:
[self dismissViewController:self.window.rootViewController
postAction:@selector(methodForNextModalPresentation)];
无论如何,我想发帖,因为我环顾四周并没有看到任何人有这个特殊问题,所以我认为它可能对人们理解有用。而且,我想验证我没有破解具有更好的解决方案设计模式的解决方案。
最佳答案
只是为了清楚起见。你是说这段代码不起作用吗?
[myRootViewController dismissViewControllerAnimated:YES completion:^{
[myRootViewController pushViewController:newController animated:YES];
}];
关于ios - 连续调用 UIViewController 的 presentViewController 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10629080/
假设我有一个带有 Root View Controller A 的导航 Controller ,我需要呈现一个 View Controller B,我可以使用以下两种方式之一: self.naviga
我正在尝试在 viewDidLoad 中使用 presentViewController:animated:completion: (iOS 7) 以模态方式呈现 View Controller ,但
我以编程方式在 iOS Swift 项目中拥有多个 View Controller 。我没有 Storyboard,如果可能的话,我想避免使用它们。有没有办法切换到另一个 viewcontroller
调用[self presentViewController]在 UIAlertController 的实例上立即加载警报。有没有办法延迟它的呈现? [self presentViewControlle
这个问题在这里已经有了答案: presentViewController and displaying navigation bar (12 个回答) 5年前关闭。 您好,我使用此代码仅使用代码而无需
我有这段代码,用于显示警报: func arraysize() -> [Int]? { let title = "Your file is empty" let message = "
我正在尝试登录 GameCenter 我的应用程序。我收到错误: Value of type 'GameScene' has no member 'presentViewController' whe
我在 iOS 6 中使用过这段代码,我可以在主视图中间呈现另一个 View 。但是,当我在 iOS 7 中运行时,呈现的 View 的原点始终位于 0,0。我该怎么办? rect= CGRectMak
我正在 ios 4.3 中使用 [selfpresentModalViewController:headanimated:NO]; 并寻找 ios5 及更高版本的替代方案。我更喜欢使用适用于所有 iO
我有一个名为 SecondViewController 的 UIViewController,它使用 UIImagePickerController 加载照片库。当我选择一张照片时,它应该显示另一个名
我有一个应用程序,它有一个选项卡栏,它出现在大多数 ViewControllers 中。问题是它没有显示在我通过这段代码呈现的 viewController 中。 UINavigationContro
在我的 swift 应用程序中,我试图让点击按钮切换 View Controller 。这是我正在使用的代码: presentViewController(pythTheoremViewControl
作为我更新我的应用程序以用 presentViewController 替换已弃用的 presentModalViewController 的一部分,我做了一些测试。我的发现令人不安。尽管 prese
我的 iOS 应用程序有一个欢迎屏幕(不要与默认 View 混淆)。 View Controller 使用 NSXMLParser 下载并解析 XML 文件。当它完成它的任务时,它会使一个按钮可见,单
我是 Swift 的新手,为此苦苦挣扎了一段时间。 我正在尝试根据登录状态将用户重定向到“登录” View Controller 或“主页” View Controller 。 “Home”viewc
这是我在这里的第一个问题,所以它可能不是最好的格式。 在我的应用程序中,我想显示下一个屏幕,这个屏幕单独运行时工作正常,所以这里应该没有问题。我正在使用以下代码进行转换 let dataViewCon
我实际上正在与键盘作斗争!我有一个像这样呈现的 viewController : self.present(viewController, animated: true, completion: ni
我用 Storyboard制作了一个单 View 项目,添加了几个 View Controller 。初始 View Controller 有一个简单的按钮来显示另一个 View Controller
我需要用 UIViewAnimationOptionCurveEaseIn 动画呈现 View Controller ,其中源 Controller 从 1 alpha 消失到 0,目标 Contro
我一直在寻找我的问题的解决方案,但其中大部分对我来说都是无用的,因为几乎所有这些都是关于在 IB 中犯下的错误,我没有在这个项目中使用它。重点: 我有一个使用 Unity 生成的 XCode 项目,我
我是一名优秀的程序员,十分优秀!