Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.07.2010, 18:09   #1
sash113
Новичок
Джуниор
 
Регистрация: 19.07.2010
Сообщений: 1
По умолчанию Landscape приложение на X-code

Приложение для 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. Хоть плачь...
sash113 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача:в вижуал с++ Разработать приложение-сервер и приложение (смотри дальше сообщение) Мила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