사용자를 클릭하면 강제로 암호를 입력 할 수있는 분할 컨트롤이 있습니다.대리자 메서드에서 segue 수행
성공적으로 확인한 후 모달 화면이 닫히고 분할 된 컨트롤이있는 컨트롤러에서 메소드가 호출되고 다른 컨트롤러에 세그먼트가 수행되어야합니다.
segue 자체는 작동하지만 로그인 확인 후 작동하지 않습니다. 나는 ... 이것이 "자기"의 문제라고 생각 위임 클래스의
코드 :
@protocol LoginUserControllerDelegate
- (void)proceedAfterLogin:(BOOL)proceedToNextController;
@end
@interface LoginUserController : UIViewController {
IBOutlet UITextField *loginPWD;
id<LoginUserControllerDelegate> _delegate;
}
@property (nonatomic, retain) UITextField *loginPWD;
@property (nonatomic, assign) id<LoginUserControllerDelegate> delegate;
- (void)checkLogindata; // checks for correct password
@end
@implementation LoginUserController
@synthesize loginPWD;
@synthesize delegate = _delegate;
- (void)checkLogindata {
...
if ([tempDBPWD isEqualToString:tempLoginPWD]) {
if (_delegate != nil) {
[self dismissModalViewControllerAnimated:YES];
[_delegate proceedAfterLogin:YES];
}
}
...
}
@end
방법에 분할 된 컨트롤러 :
이@interface StartViewController : UIViewController <LoginUserControllerDelegate> {
UISegmentedControl *segmentedControl;
LoginUserController *_loginUserController;
}
@property (nonatomic,retain) IBOutlet UISegmentedControl *segmentedControl;
@property (nonatomic, retain) LoginUserController *loginUserController;
- (IBAction)segmentedControlIndexChanged:(id)sender;
@end
@implementation StartViewController
@synthesize segmentedControl;
@synthesize loginUserController = _loginUserController;
- (IBAction)segmentedControlIndexChanged:(id)sender
{
if (self.segmentedControl.selectedSegmentIndex == 0) {
// get delegate
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UIStoryboard *storyboard = appDelegate.window.rootViewController.storyboard;
LoginUserController *loginUserControllerView = [storyboard instantiateViewControllerWithIdentifier:@"LoginUserViewID"];
loginUserControllerView.delegate = self;
// now show screen
[self presentModalViewController:loginUserControllerView animated:YES];
} else {
}
}
- (void)proceedAfterLogin:(BOOL)proceedToNextController
{
if (proceedToNextController) {
// yes, correct login now perform the segue to the controller
[[self segmentedControl] setSelectedSegmentIndex:UISegmentedControlNoSegment];
[self performSegueWithIdentifier:@"NextControllerSegueID" sender:self];
}
}
@end
나는 생각 자체가 올바르지 않기 때문에 [self performSegueWithIdentifier:@"NextControllerSegueID" sender:self];
이 문제입니다. 오류가 발생하는 곳이며 원하는 동작을 어떻게 얻을 수 있습니까?