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

У меня есть код, в котором все элементы пользовательского интерфейса создаются динамически. У меня есть контроллер навигации, который подключается к другому виду в главном окне. В этом у меня проблема в том, что когда я пишу код для изменения ориентации, он не работает автоматически.

прагма метка MainViewController

@implementation MainViewController

@synthesize imageView; @synthesize btnBegin, btnSite; @synthesize phoneNumber;

 - (void)viewDidLoad {  self.title=@"Midwest Sleep Test";self.view.backgroundColor = [UIColor whiteColor];
CGRect myImageRect = CGRectMake(-10,-10,320,313);
imageView = [[UIImageView alloc] initWithFrame:myImageRect];
[imageView setImage:[UIImage imageNamed:@"midwestsleep.png"]];

[self.view addSubview:imageView];
[imageView release]; 

btnBegin = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnBegin addTarget:self action:@selector(Begin:) forControlEvents:UIControlEventTouchUpInside];
[btnBegin setTitle:@"Begin!" forState:UIControlStateNormal];
btnBegin.frame = CGRectMake(112,295,95,45);
[self.view addSubview:btnBegin];

CGRect myLabelRect = CGRectMake(112,345,130,22);
phoneNumber=[[UILabel alloc] initWithFrame:myLabelRect];
phoneNumber.text=@"937-350-5645";
phoneNumber.textColor=[UIColor blueColor];
phoneNumber.font= [UIFont fontWithName:@"ComicSansMsBold" size:18];

[self.view addSubview:phoneNumber];

btnSite = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btnSite addTarget:self action:@selector(Site:) forControlEvents:UIControlEventTouchUpInside];
[btnSite setTitle:@"www.midwestsleepmed.com" forState:UIControlStateNormal];
btnSite.frame = CGRectMake(1,370,320,22);

[self.view addSubview:btnSite];

}

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation{
return YES;}

enter code-(IBAction)Begin:(id)sender{
SecondView *sV = [[SecondView alloc] init];
[self.navigationController pushViewController:sV animated:YES];
[sV release];}

`- (IBAction) Сайт: (id) отправитель {[[UIApplication sharedApplication] openURL: [NSURL URLWithString: @" http://www.midwestsleepmed.com "]];}

прагма отметка AppDelegate

прагма знак -

@implementation MidWestSleepAppDelegate

окно @synthesize; @synthesize viewController; оценка @synthesize;

- (void)applicationDidFinishLaunching:(UIApplication *)application{
LogMethod();
// If you want the status bar to be hidden at launch use this:
// application.statusBarHidden = YES;
//
// To set the status bar as black, use the following:
// application.statusBarStyle = UIStatusBarStyleBlackOpaque;


// Create window
window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// this helps in debugging, so that you know "exactly" where your views are placed;
// if you see "red", you are looking at the bare window, otherwise use black
// window.backgroundColor = [UIColor redColor];

viewController = [ [ MainViewController alloc ] init ];

navigationController = [ [ UINavigationController alloc ] initWithRootViewController: viewController ];

/* Anchor the view to the window */
[window addSubview:[navigationController view]];

/* Make the window key and visible */
[window makeKeyAndVisible];}

- (BOOL)shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation{
return YES;} 

@конец

В приведенном выше коде, когда я реализую, у меня возникает проблема в симуляторе, который находится в ландшафтном режиме, весь uiview становится другим и не получает свою собственную позицию. В чем проблема в этом коде и как ее исправить?


person ram    schedule 12.07.2011    source источник
comment
если кто-то думает, что это похоже на какой-либо вопрос, скажите мне эту ссылку. Я думаю, это другой вопрос.   -  person ram    schedule 12.07.2011


Ответы (1)


person    schedule
comment
ну, как вы писали в вопросе, uiview не получает свою позицию, я думаю, вы не установили свои элементы secondviews, которые вы использовали, я имею в виду, что вам нужно установить все элементы (подклассы uiviews), чтобы получить идеальные позиции как в ландшафтном, так и в портретном режиме. - person Dhaval Panchal; 12.07.2011
comment
как их установить, можно привести пример кода. скажите, пожалуйста, строку кода, которую я ищу за столько дней. - person ram; 12.07.2011
comment
Отредактировал ответ, как динамически устанавливать рамки для ландшафтного и портретного режима. - person Dhaval Panchal; 12.07.2011
comment
он работает, но есть проблема, что при нажатии кнопки для перехода к следующему просмотру размер следующего вида не изменяется автоматически. До этого у меня есть режим изменения обзора, затем я вращаюсь в ландшафтном режиме, затем меняю. как настроить, чтобы он работал автоматически? - person ram; 12.07.2011