ios - 自定义 UIViewController 未收到设备旋转时的方向更改通知

标签 ios uiviewcontroller xamarin.ios

所以,我有一个自定义 UIWindow、一个自定义 UIViewController 和一个自定义 UIImageView。

private class CoachingWindow : UIWindow
{
    public CoachingWindow(...)
    {
        RootViewController = new CoachingOverlayViewController(...);
    }

    private class CoachingOverlayViewController : UIViewController
    {
        public CoachingOverlayViewController(...)
        {
            View = new CoachingOverlayView(...);
        }

        public override void DidRotate (UIInterfaceOrientation fromInterfaceOrientation)
        {
            ...
        }

        public override bool ShouldAutorotate()
        {
            return true;
        }

        private class CoachingOverlayView : UIImageView
        {
            public CoachingOverlayView(...)
            {
                ...
            }
        }
    }
}

第一次调用时,窗口、 View Controller 和 View 都正确显示:自定义 UIWindow 显示为现有 UIWindows 其余部分的覆盖, View Controller 被正确分配为 RootViewController, View 被分配给 View View Controller 的属性。因此,一切都正确呈现。

但是,当我物理旋转设备或模拟器时,重写的 DidRotate() 和 ShouldAutorotate() 方法永远不会被调用。

我认为这可能与我使用自定义 UIWindow 有关。也许窗口没有收到来自 iOS 的方向更改通知?或者 iOS 是否直接将这些通知发送到 View Controller ?也许我必须以某种方式让 View Controller 订阅这些事件,因为它是自定义 View Controller ???

我使用的是 MonoTouch 和 iOS 6。

任何建议都会很棒。我正在用头撞墙。

最佳答案

在 iOS 6 中您可以使用

    public override UIInterfaceOrientationMask GetSupportedInterfaceOrientations()
    { ... }

关于ios - 自定义 UIViewController 未收到设备旋转时的方向更改通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13498054/

相关文章:

iphone - 如何像操作表一样在按钮上滑动 UIViewcontroller 从下到上?

xamarin - 我可以将 MvvmCross vNext 与 Xamarin 2.0 一起使用吗?

c# - Xamarin-ios 小部件无法加载

c# - Xamarin.iOS 版本 Appstore 应用程序中的人类可读异常处理

iphone - iOS - 我如何使用 FBGraph API "Like/Share"来 self 的应用程序的特定页面的任何照片?

ios - 无法让 xcode Storyboard 模式按钮更改屏幕

objective-c - 使用选项卡栏 Controller ( Storyboard)阻止访问 UIViewControllers

ios - 从容器 View 获取数据

ios - 将网络代码移出 Controller

ios - 在 React Native 中隐藏/显示基于服务/动态地来自 json 的标签 <Text>