UIViewController横向模式按钮不起作用

时间:2011-01-27 19:39:05

标签: iphone objective-c ios

我正在努力让一个应用程序在横向模式下工作,我已经差不多完成了,但由于某种原因,我视图上的按钮不起作用(即他们没有按下)。我正在使用根视图控制器,它按如下方式加载初始视图控制器:

        - (void)viewDidLoad 
{

        [super viewDidLoad];

        StartViewController *viewController = [[StartViewController alloc] initWithNibName:@"StartView" bundle:nil];
        self.startViewController = viewController;
        startViewController.delegate = self;
        [viewController release];

        [self.view addSubview:startViewController.view];
    }

我还在Info.plist文件中设置了Initial Interface Orientation值,并在我的根视图控制器中覆盖了以下内容:

    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{
    // Return YES for supported orientations
    return((interfaceOrientation == UIInterfaceOrientationLandscapeRight) ||
           (interfaceOrientation == UIInterfaceOrientationLandscapeLeft));
    //return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

视图加载正常并以横向模式填充屏幕,但由于某种原因,我无法按下视图上的任何按钮。

我确信这与我使用根视图控制器有关,因为我已经设法让这个工作正常,之前只有一个视图控制器的应用程序。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:4)

我认为问题出在xib的某个地方。 例如。该按钮放在UIView上,调整大小不正确的掩码。因此,在横向模式下,按钮显示在视图外部,触摸无法到达按钮。您可以在所有父视图中检查设置clipSubviews - 如果我是对的,您将不再看到该按钮。

答案 1 :(得分:0)

我有一个类似的问题。在我的情况下,我是UITableViewCell的子类,我已经覆盖了layoutSubviews方法。在那里,我正在做翻译。但是我忘了把[super layoutSubviews];在我实施之前。在我把它放到htere后,按钮再次以横向模式工作。奇怪的是,在肖像中,它的工作和景观都没有。