вопрос о множественном просмотре iPhone - PullRequest
0 голосов
/ 10 июня 2011

У меня есть контроллер корневого представления, который содержит выход для моего контроллера представления входа в систему.корневое представление должно контролировать переход к следующему представлению, но в моем представлении входа в систему есть кнопка для продолжения.как бы настроить подстройку кнопки внутри к IBAction в моем корневом контроллере?

Один из методов, который у меня есть, - это сохранить указатель на корневой класс, где я создаю класс входа в систему (закомментирован новый код):

// RootViewController.m

- (void)viewDidLoad {
    LoginViewController *loginController = 
        [[LoginViewController alloc]initWithNibName:@"LoginView" bundle:nil];
    self.loginViewController = loginController;
    //loginViewController.parent = self;
    [self.view insertSubview:loginController.view atIndex:0];
    [loginController release];
    [super viewDidLoad];
}

- (IBAction)loginPressed: (id)sender
{
    self.loginViewController.loginButton.enabled = NO; //yea... doesnt work
}

Поэтому в IB я добавляю UIViewControllerк Nib и назначить его родительским как выход, а затем назначить событие touch-up внутри события loginPressed, которое определено в корневом контроллере (родительском) ... это не сработало так явно, явно ссылаясь на элементы управления из self.loginViewController вRootViewController.

есть ли правильный способ сделать это.

- расстроен c ++ / c # / java-кодер

Ответы [ 3 ]

1 голос
/ 10 июня 2011

Рассматривали ли вы представление loginView модально?Затем вы можете открыть представление и вернуться к rootViewController и двигаться дальше.

0 голосов
/ 10 июня 2011

Вы можете иметь loginViewController в качестве IBOutlet, связать его действие «подправить внутри» с -loginPressed: от владельца файла.

Или вы можете программно выделить и запустить свой контроллер в -viewDidLoad самостоятельно,и установите действие программно.

Но то, что вы сделали, похоже, смешало два способа.

0 голосов
/ 10 июня 2011

Создайте выход метода нажатием кнопки в том же классе, что и XIB, и подключите его. Я предполагаю, что ваше представление входа в систему создается корневым контроллером ... создайте свойство assign для корневого представления в представлении входа в систему, а затем назначьте ему корневой контроллер при создании представления входа в систему. Затем в методе представления входа в систему для «нажатой кнопки» вы можете ссылаться на контроллер корневого представления. Прописано:

в .h файле LoginController:

@property (nonatomic, assign) RootViewController* rvc;

в .m файле LoginController:

@synthesize rvc;

в Root View Controller "сделать код контроллера входа", после того, как вы его инициализировали, но до того, как представили его:

[loginController setRvc:self];

в методе нажатия кнопки LoginController:

[[self rvc] whateverMethodThatDoesLoginStuff];

Таким образом, у вас есть путь между тем, когда пользователь нажимает кнопку, и вашим кодом «do-login».

...