Как отправить сообщение через presentModalViewController в UIViewContoller (логин), что кнопка нажата? - PullRequest
0 голосов
/ 14 августа 2011

Итак, вот моя проблема:

У меня есть AppDelegate с контроллером навигации:

[self.window addSubview:navigationController.view];

Там я положил presendModalViewController:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
 [[self navigationController] presentModalViewController:passwordViewController animated:YES];

}

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

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

Я могу сообщить моему UIView, который находится в моем NavigationController, что пароль был задан, и обратно, чтоПароль был верным и ответили:

[self.parentViewController dismissModalViewControllerAnimated:YES];

, чтобы удалить это представление?

Есть приложение с именем iOutbank, в котором есть то, что я хочу предположить ...

Ответы [ 2 ]

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

@ Тим Дин, большое спасибо, что вы помогли мне помочь себе и подумать о моей проблеме. Вот как я это сделал:

Я сделал экземпляр моего PasswordView в My tableView:

     - (void)viewDidLoad
{

self.passwordView = [[PasswordViewController alloc]init];
[passwordView setPasswordViewDelegate:self];

[self.navigationController presentModalViewController:self.passwordView animated:YES];
}

Поместите туда моего делегата:

@interface TableView : UITableViewController <PasswordViewDelegate>
{


PasswordViewController *passwordView;

}

И получите мой метод Delegate из моего PasswordView:

-(void)loginPressed
{
NSLog(@"Login Pressed");
[self.parentViewController dismissModalViewControllerAnimated:YES];



 }

И теперь я могу использовать мою логику моего TableViewClass.

Я люблю переполнение стека!

Привет, и я надеюсь, что есть кто-то, кому я помогу с моей решенной проблемой, я иду спать ....

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

Добавьте делегата к вашему классу контроллера представления, который вызывается, когда был введен действительный пароль.Примерно так будет работать в вашем контроллере представления входа в систему:

@protocol LoginDelegate
    - (void)loginSucceeded;
@end


@interface LoginViewController : UIViewController 
{
    id<LoginDelegate> delegate;
}

}

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

@interface MyAppDelegate : NSObject <LoginDelegate>
{
    // App delegate interface stuff
}

@implementation MyAppDelegate
{
    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    {
        // Create myLoginViewController          

       [myLoginViewController setDelegate:self];

       // Display login view controller           
    }

    - (void)loginSucceeded
    {
        // Dismiss login view controller
        // Do other stuff
    }

}

Когда ваш класс делегата приложения получает уведомление о том, что парольПосле этого вы можете отклонить контроллер просмотра паролей и делать все, что вы хотите сделать дальше.

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