![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 19.07.2010
Сообщений: 1
|
![]()
Приложение для iPhone в среде X-code. Такая проблема. Ситуацию упрощу, чтобы сразу была видна суть.
Создаю View-based приложение (назовем его Foo). Сразу скажу, что оно должно поддерживать только ландшафную (альбомную) ориентацию. Мне в приложении надо несколько View, у каждого свое содержимое (кнопки, изображения...) Вот и в FooViewController.h я пишу: #import <UIKit/UIKit.h> @interface FooViewController : UIViewController { IBOutlet UIView *one; IBOutlet UIView *two; } @property (nonatomic, retain) UIView *one; @property (nonatomic, retain) UIView *two; - (IBAction) fromOneToTwo: (id) sender; // Переключение от первой ко второй - (IBAction) fromTwoToOne: (id) sender; // переключение от второй к первой @end В файле FooViewController.m соответственно: #import "FooViewController.h" @implementation FooViewController @synthesize one; @synthesize two; - (IBAction) fromOneToTwo: (id) sender { self.view = two; } - (IBAction) fromTwoToOne: (id) sender { self.view = one; } Поскольку мне нужна только ландшафтная ориентация в этом же файле раскомментирую и исправляю уже предусмотренную функцию: - (BOOL)shouldAutorotateToInterfaceOrienta tion: (UIInterfaceOrientation)interfaceOrientation { //Return YES for supported orientations return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft ); } Все сохраняю. Теперь открываю FooViewController.xib , запускается Interface Builder. Из Library беру View и тяну в окно FooViewController.xib . Теперь там уже два View. Выбираю первое. В свойствах View Attributes свойство Orientation делаю Landscape, задаю ему к-л цвет. Ложу на него кнопку, делаю ей Title у нее будет Button One. Все тоже делаем со вторым View (ориентация, цвет, кнопка Button Two). Потом в окне FooViewController.xib соединяю, удерживая Cntrl, File's Owner и первый View, выбираю из pop-up окна one. Аналогично со вторым View. Потом действия кнопок Touch Up Inside соединям с fromOneToTwo: и fromTwoToOne: . Сохраяем, запускаем. Как и должно было быть, девайс-симулятор расположился правильно и View видно так, как когда мы его редактировали. Жмем кнопку - упс, View переключается на другое только оно уже абы-как, то есть кнопка в другом месте и расположена она и ее надпись вертикально, то есть как бы повернулась в портретную ориетацию. Поворот девайса нам ничего не дает, также как и вызов функции [self shouldAutorotateToInterfaceOrientat ion:self.InterfaceOrientation] в функции fromOneToTwo , так как она по сути ничего не делает только возвращает булевское значение. Просто изменить self.InterfaceOrientation на UIInterfaceOrientationLandscapeLeft нельзя, ругается: Object cannot be set - either readonly or no setter found. Хоть плачь... |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) | Мила777 | Фриланс | 2 | 21.10.2009 11:05 |
Code Blocks | [Ap][uTekToP] | Общие вопросы C/C++ | 6 | 23.09.2009 20:58 |
CODE::BLOCKS | vvviperrr | Софт | 0 | 18.12.2008 19:19 |
Номера строк. [Code][/code] | AngelOfDeath | О форуме и сайтах клуба | 4 | 11.12.2008 11:57 |