- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 MainViewController 中,我必须根据方向变化调整一些图像。简单 - 只需将代码添加到 willAnimateRotationToInterfaceOrientation: 回调
- (void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)orientation duration:(NSTimeInterval)duration {
NSLog(@"orientation: %@", name(orientation));
..
按预期工作。在纵向中,我将另一个方向感知的 UIViewController 推到 UINavigationController 上。我旋转到横向,一切都很好。
然后我通过调用返回到 MainViewController
[self.navigationController popViewControllerAnimated:YES];
虽然 MainViewController 的 subview 根据自动调整大小蒙版调整为横向,但 willAnimateRotationToInterfaceOrientation: 不会被调用!
我希望 willAnimateRotationToInterfaceOrientation: 在不在导航 Controller 堆栈顶部时也被调用,或者至少在返回到堆栈顶部时被调用。
我假设我可以在弹出之前手动调用 willAnimateRotationToInterfaceOrientation: 但感觉不对。
我错过了什么?
最佳答案
据我所知,这是预期的行为。如果 UIVC 不在堆栈顶部,则不应调用 willAnimateRotationToInterfaceOrientation,因为此时没有旋转动画。我现在正在开发的应用程序中处理此问题的方式与上面的海报类似。任何支持所有方向的 UIVC 都会有一个新方法
- (void) updateLayoutForNewOrientation: (UIInterfaceOrientation) 方向;
此方法从两个地方调用:
-(void) viewWillAppear: (BOOL) animated {
[super viewWillAppear: animated];
[self updateLayoutForNewOrientation: self.interfaceOrientation];
}<p></p>
<p>-(void) willAnimateRotationToInterfaceOrientation: (UIInterfaceOrientation) interfaceOrientation duration: (NSTimeInterval) duration {
[self updateLayoutForNewOrientation: interfaceOrientation];
}
</p>
新方法很简单:
- (void) updateLayoutForNewOrientation: (UIInterfaceOrientation) orientation {
if (UIInterfaceOrientationIsLandscape(orientation)) {
// Do some stuff
} else {
// Do some other stuff
}
}
此外,如果您担心代码在实际不需要时运行,您可以通过 viewDidDisappear 中设置的实例变量来跟踪新 UIVC 被推送到堆栈时设备所处的方向,并引用它来决定如果你想“做事”
关于iphone - popViewControllerAnimated 上未调用 willAnimateRotationToInterfaceOrientation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3595471/
我有导航 Controller 。在此 Controller 的第二个 View 上,我创建了一个后退按钮,其操作名为“后退”。在这个方法中,我调用“popViewControllerAnimated
在 MainViewController 中,我必须根据方向变化调整一些图像。简单 - 只需将代码添加到 willAnimateRotationToInterfaceOrientation: 回调 -
我有一个带有一些 UITextView 的 View 。用户可以输入个人数据、姓名、姓氏、电子邮件等。编辑完成后,用户点击右上角的“完成”, View 像这样导航回上一个 View : - (void
我有一个基于 UINavigationController 的应用程序,其中包含多个 View 。 当我通过在导航 Controller 上调用以下方法返回到以前的 View Controller 时
所以问题是当有人触摸 UINavigationControler 上的后退按钮时,我想运行一些代码来更新数据源。 问题是我似乎找不到合适的代表来做这件事。只有这些在导航 Controller 委托(d
我制作了一个自定义 UINavigationController 类,这样我就可以弹出一个 UIAlertView 并说,您确定要在点击后退按钮时离开此 View 吗? 我有一个客户,方法如下: -
我不明白为什么在弹出回导航堆栈中的上一个 View Controller 时会崩溃。问题是我正在使用自定义导航栏(原始导航栏被隐藏,我的自定义按钮触发导航 - 推送和弹出 - 相反)。 我得到的痕迹:
为了提供一些上下文,我有一个简单的 UITableViewController,它用数据填充 UITableView。选择一行后,我会通过创建自定义 UIViewController 的新实例并将其推
我有 4 个 ViewController A、B、C、D。我使用从 Storyboard 创建的 Push Segues 从 A->B->C->D 移动。 由于我的应用程序的逻辑,如果用户想从屏幕
在我的应用程序中,我使用了导航 Controller 。我的问题是,当我转到上一个 View 然后返回到当前 View 时,该 View 中的所有 TextField 都是空的。 当我从导航 Cont
我想使用 popViewControllerAnimated 而不是 popToRootViewControllerAnimated 来移动到 Root View 。我不想直接移动到 Root Vie
我在 Xcode 6 的 iOS 8 中遇到一个错误。 就是这个场景。 XCode 6 创建新项目“Master-Detail Application” 现在我只是详细地添加了一个按钮,并在其点击事件
我在 UIView 子类中创建了一个按钮。我需要通过此按钮调用 popViewControllerAnimated,但没有任何效果!而且我看不到 viewController 推回到 rootView
当我使用 tableView:didSelectRowAtIndexPath / popViewControllerAnimated 它不起作用。我将 View Controller 推到另一个 Vi
当我尝试弹出一个 View Controller 时,它不会更新前一个 View 的信息。示例:我有一个单元格在 View1 的标签中显示文本。当您单击单元格时,它会转到 View2(例如)当我在 V
我知道错误 Can't unwrap optional 意味着程序在某处试图解包一个 nil 变量。问题是我不知道在哪里。 我正在编写一个模态呈现的编辑屏幕。用户更改内容,它被保存,然后我们弹出到显示
我有这个代码: -(IBAction)OkButtonPressed:(id)sender{ NSLog(@"BTN OK"); RecherchePartenaireTableVie
所以,在内存不足的情况下,我的 Root View 被卸载了。这是预料之中的。但是,我该如何处理需要弹出的模态/推送 View Controller ,因为它们引用了主导航 Controller ?我
我试图在从堆栈中弹出顶部 viewController 的同时“做一些事情”。从堆栈中弹出 viewController 似乎不被视为 segue,因此我不能使用 prepareForSegue: s
我使用以下代码来处理失败的请求。 - (void)requestFailed:(ASIHTTPRequest *)request { [self.alertView dismissWithCl
我是一名优秀的程序员,十分优秀!