Что идет в представлении и что идет в контроллере представления? - PullRequest
4 голосов
/ 26 февраля 2011

Я новичок в программировании для iPhone, и это будет мой первый вопрос здесь.У меня есть опыт работы с разными языками, такими как php / java / c ++.

Мой вопрос касается ViewControllers и представлений в iOS.

Я запустил проект, который будет содержать несколько разных вещей, таких как экран входа в систему, главный экран и несколько других экранов.Цель этого проекта - научиться создавать все программно, а не использовать интерфейсный конструктор, чтобы привыкнуть к системе.Я использую книгу: «Расширенное программирование для iOS 4».

Мне удалось создать все экраны (и такие вещи, как вход в систему работает), но я не уверен, что сделалэто правильно.

Весь мой код для создания текстовых полей / меток / кнопок теперь находится в ViewController, в то время как основной вид, на котором все размещено, почти пуст, и в нем ничего не делается.Разве код для создания текстовых полей и других компонентов не должен находиться в самом представлении, или это правильный подход?

Я рассмотрел несколько разных примеров, но большинство использует конструктор интерфейсов.Сама книга также не очень ясна в этом вопросе.

Заранее спасибо.

С уважением, Джаспер

Ответы [ 2 ]

3 голосов
/ 26 февраля 2011

В представлении у вас есть представление - другими словами, буквально то, что пользователь видит своими глазными яблоками.

Так, например, если вы делаете сложное рисование, у вас будет собственный собственный метод drawRect: и, например, в виде.

С другой стороны ......

В контроллере вида есть вещи, которые управляют видом .

Вообще говоря, "все" идет в контроллере вида.

Когда вы впервые начинаете программировать для iPhone (или Mac), просто помещает все в контроллер вида и не волнуйтесь слишком сильно. Там есть чему поучиться. OK

В конце концов, выделите «фактический чертеж» отдельно для вида.

Надеюсь, это простое объяснение для начинающих помогает!

1 голос
/ 26 февраля 2011

В простом коде контроллера должны быть методы типа ...

class myLoginController : NSObject
{
UIView *myView;
}

-(void) initLoginController
-(void) loadLoginViewInView :(UIView*)inView;
-(void) removeLoginView;
-(void) isViewLoaded;
-(void) submitButtonClicked : (id) button;
-(BOOL) isLoginSuccess;

и initLoginController вы можете создать свой вид,

-(void) loadLoginViewInView :(UIView*)inView
{
[inView addSubview:myView];
}

и в removeLoginView вы можете удалить «myView» из его superView.

...