iOS: помощь начинающим для моего первого приложения: переключать представления? - PullRequest
0 голосов
/ 02 августа 2011

Я пишу свое первое греховное приложение для iPhone. Мой экран входа в систему готов. Я реализовал View в своем MainWindow для учетных данных для входа в систему и добавил весь пользовательский интерфейс в представление (текстовые поля и т. Д.).

Что теперь?

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

Как это сделать?

Могу ли я легко добавить событие кнопки в loginviewcontroller, проверить там logindata и получить доступ к главному окну и убить оттуда само представление без проблем? Или я должен объявить событие-кнопку из представления в главном окне и сделать все там?

Мой код:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andDelegate:(id)delegate
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        button.frame = CGRectMake(self.view.frame.size.width / 2 - 55.0f, self.view.frame.size.height / 2 + 85.0f
                               , 110.0f, 35.0f);
        [button setTitle:@"title" forState:UIControlStateNormal];
        [button addTarget:delegate action:@selector(yourMethodInMainWindow:) forControlEvents: UIControlEventTouchDown];
        [self.view addSubview:button];
    }
    return self;
}

Ответы [ 3 ]

2 голосов
/ 02 августа 2011
1 голос
/ 02 августа 2011

в вашем viewcontroller:

//maybe you will need to have more arguments added to you init method
//for instance you might be using -(id)initWithNibName:bundle: right now
//then just add delegate to it like -(id)initWithNibName:bundle:andDelegate:
//just to clarify: delegate = reference to class you want to call a method in
-(id)initMethod:(id)delegate {
    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    self.button.frame = CGRectMake(self.view.frame.size.width / 2 - 55.0f, self.view.frame.size.height / 2 + 85.0f
                                     , 110.0f, 35.0f);
    [button setTitle:@"title" forState:UIControlStateNormal];
    [button addTarget:delegate action:@selector(yourMethodInMainWindow:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];

}

в классе с mainWindow:

-(void)yourMethodInMainWindow:(id)sender {
    //do whatever you want to do.
}

это один из способов установить его программно.если вы используете nib, то вы определите метод в вашем .h-файле och типа - (IBAction)buttonClicked:(id)sender, а затем подключите их в Интерфейсном Разработчике.

Полагаю, вы знаете, как открыть новый вид.может быть сделано, например, с presentModalViewController:animated:.все это уже на stackoverflow и Google.

ответ здесь может сказать вам, что вам нужно знать о доступе к UIApplication и, следовательно, к окну.

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

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

Прежде всего, вставьте контроллер навигации в MainWindow.xib

Затем загрузите LoginViewController в этот контроллер навигации.LoginviewController будет представлением, в котором будут размещаться ваш логин и пароль, а также логин btn.

Теперь, для действия login btn, напишите метод,

- (IBAction) loginBtnPressed : (id) sender{

     MainViewController *newObject = [MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];

    [self.navigationController pushViewController:newObject animated:YES];

}

После того, как вы напишите этот методПросто прикрепите этот метод к btn в вашем файле .xib в конструкторе интерфейсов.

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