0

我已经设置了一个具有以下内容的类: MESSidePanelViewControllerSubClass 头文件

@property BOOL setLandscapeOK;

小鬼文件

- (NSInteger)supportedInterfaceOrientations {
    // Restriction for the welcome page to only allow potrait orientation

    if (setLandscapeOK == YES) {
        NSLog(@"Reveal-setting all");
        return UIInterfaceOrientationMaskAll;
    }
    NSLog(@"Reveal-setting portrait");
    return UIInterfaceOrientationMaskPortrait;
}

我现在想从另一个文件(视图控制器)更新值。
LoginViewController 其他视图控制器 imp 文件

- (NSInteger)supportedInterfaceOrientations {
    // Restriction for the welcome page to only allow potrait orientation
    NSLog(@"Login-supportInterfaceOrientations");
    MESSidePanelViewControllerSubClass* setLandscapeOK = YES;
    return UIInterfaceOrientationMaskAll;
}

我收到一个错误:

Implicit conversion of 'BOOL' (aka 'signed char') to 'MESSidePanelViewControllerSubClass *' is disallowed with ARC

我应该如何更新另一个文件中的 BOOL 值?

4

2 回答 2

0

不应该-supportedInterfaceOrientations总是 MESSidePanelViewControllerSubClass返回UIInterfaceOrientationMaskPortrait吗?如果将 的实例MESSidePanelViewControllerSubClass作为子视图控制器推送,那不会强制您的 UI 方向为纵向吗?你试过吗?

于 2013-02-17T01:23:06.380 回答
0

这一行是错误的:

MESSidePanelViewControllerSubClass* setLandscapeOK = YES;

它应该是这样的:(mESSidePanelViewControllerSubClass 也可能是一个 iVar,并在您的 supportedInterfaceOrientations 方法之外的某个地方实例化。)

 MESSidePanelViewControllerSubClass *mESSidePanelViewControllerSubClass = [MESSidePanelViewControllerSubClass alloc] init];

然后:

mESSidePanelViewControllerSubClass.setLandscapeOK = YES;

编辑添加到delegate的链接。

于 2013-02-15T23:20:45.623 回答