UIImageView не меняет ориентацию при добавлении в качестве подпредставления к окну - PullRequest
1 голос
/ 02 августа 2011

У меня есть фоновое изображение в UIViewController и RootViewController. Я добавил оба ViewController's View внутри окна следующим образом

        MainMenuBavkGround_ipad *backImage = [[MainMenuBavkGround_ipad alloc] initWithNibName:@"MainMenuBavkGround_ipad" bundle:[NSBundle mainBundle]];
    RootViewController *rootviewController = (RootViewController *)[navigationController.viewControllers objectAtIndex:0];
    backImage.m_rootViewController = rootviewController;
    rootviewController._buttons = Buttons;
    rootviewController.tableView.contentInset = UIEdgeInsetsMake(250.0, 200.0, 0.0, 0.0);
    rootviewController.view.backgroundColor = [UIColor clearColor];
    [window addSubview:navigationController.view];
    [window addSubview:backImage.view];

Но теперь UIViewController (MainMenuBavkGround_ipad) не меняет свою ориентацию. даже он не вызывает shouldAutorotateToInterfaceOrientation.

Если я изменяю порядок добавления видов в окне, то представление RootViewController не меняет ориентацию.

и если я добавлю в окно представление UIViewControoler и добавлю представление RootViewController в представление UIViewController, то viewDidAppear rootViewController не будет вызываться.

Я попытался вызвать shouldAutorotateToInterfaceOrientation вручную. но это не сработало.

Может кто-нибудь сказать мне, как это сделать?

1 Ответ

0 голосов
/ 03 августа 2011

Решенная проблема !!!!!!

По документации Я понял, что не могу добавить два представления viewcontroller в окно.Итак, я попробовал установить фоновый вид таблицы;и я получил сообщение от пользователя ama269, а затем я установил цвет фона моего окна на изображение, используя следующий код.

 window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"scrn_01_iPad.png"]];

и всякий раз, когда мой вид получает уведомление об ориентации, я делаю следующее, чтобы изменитьизображение с различной ориентацией.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {;
if( (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad))
{
    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ||interfaceOrientation == UIInterfaceOrientationLandscapeRight )
    {
        self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"1st_scrn_iPad_L.png"]];
    }
    else
    {
        self.parentViewController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"scrn_01_iPad.png"]];

    }
}

}

И теперь моя проблема решена viewDidAppear rootViewController get invoke.и мои ориентации изображения также обрабатываются.

Благодаря ama269

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...