Nếu buttonAction là phương pháp mà phải thực hiện trên nút bấm, bạn phải gọi hai phương pháp bên trong nó 1. Phương pháp kiểm tra các điều kiện 2. Phương pháp để kiểm soát segue
- (IBAction)buttonAction:(id)sender
{
[self validateEnteredData];
[self shouldPerformSegueWithIdentifier:kSegueName sender:sender];
}
Phương thức xác thực của bạn sẽ trông giống như sau
-(void)validateEnteredData
{
if (self.usernameTextField.text.length==0 && self.passwordTextField.text.length==0)
{
UIAlertView * alert=[[UIAlertView alloc]initWithTitle:kError message:kInvalidationMessage delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
return;
}
else if (![self.usernameTextField.text isEqualToString:@"admin"] && ![self.passwordTextField.text isEqualToString:@"pass"])
{
UIAlertView * alert=[[UIAlertView alloc]initWithTitle:kError message:kLoginFailed delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil, nil];
[alert show];
return;
}
}
và segue có thể được kiểm soát bởi đoạn mã sau
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
if ([identifier isEqualToString:kSegueName])
{
//Validation: Return NO if you don't want to execute the segue action
if (self.usernameTextField.text.length==0 && self.passwordTextField.text.length==0)
{
return NO;
}
else if (![self.usernameTextField.text isEqualToString:@"admin"] && ![self.passwordTextField.text isEqualToString:@"pass"])
{
return NO;
}
}
return YES;
}
Nguồn
2015-11-19 07:04:40
Tôi thích điều này tốt hơn câu trả lời được chấp nhận. – bandejapaisa
tốt hơn nhiều so với câu trả lời được chấp nhận ... –
Điều này tốt hơn vì bạn có thể giữ mũi tên đẩy trong bảng phân cảnh và chỉ sửa đổi điều này để thêm các điều kiện cần thiết của bạn –