Похоже, вы еще не объявили delegate
участника LoginForm. Вам нужно будет добавить код, который позволяет экземпляру UIViewController, который представляет LoginForm модально, когда LoginForm будет завершен. Вот как можно объявить свой собственный делегат:
В LoginForm.h:
@class LoginForm;
@protocol LoginFormDelegate
- (void)loginFormDidFinish:(LoginForm*)loginForm;
@end
@interface LoginForm {
// ... all your other members ...
id<LoginFormDelegate> delegate;
}
// ... all your other methods and properties ...
@property (retain) id<LoginFormDelegate> delegate;
@end
В LoginForm.m:
@implementation
@synthesize delegate;
//... the rest of LoginForm's implementation ...
@end
Затем в экземпляре UIViewController, который представляет LoginForm (назовем его MyViewController):
В MyViewController.h:
@interface MyViewController : UIViewController <LoginFormDelegate>
@end
В MyViewController.m:
/**
* LoginFormDelegate implementation
*/
- (void)loginFormDidFinish:(LoginForm*)loginForm {
// do whatever, then
// hide the modal view
[self dismissModalViewControllerAnimated:YES];
// clean up
[loginForm release];
}
- (IBAction)showLogin:(id)sender {
LoginForm *lf = [[LoginForm alloc]initWithNibName:@"LoginForm" bundle:nil];
lf.delegate = self;
lf.modalPresentationStyle = UIModalTransitionStyleCrossDissolve;
[self presentModalViewController:lf animated:YES];
}