Ниже приведен мой код для события действия кнопки.
-(IBAction)reportRepair{
if(![Common hasReportRepairURL]){
NSArray *forms = [[self delegate] getFormsForSection:@"REPORTREPAIR"];
if(forms.count == 0){
[self performSegueWithIdentifier:@"ReportRepairView" sender:self];
}else if(forms.count == 1)
[self getFormByFormID:[[forms objectAtIndex:0] intValue]];
else
[self performSegueWithIdentifier:@"FormsView" sender:self];
}
}
и prepareForSegue, как показано ниже:
- (void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if([[segue identifier] isEqualToString: @"RepairDetailView"]){
RepairDetailViewController *dest = (RepairDetailViewController *) [segue destinationViewController];
dest.job = self.selectedJob;
dest.tenancy = self.tenancy;
}else if([[segue identifier] isEqualToString: @"ReportRepairView"]){
ReportRepairViewController *dest = (ReportRepairViewController *) [segue destinationViewController];
dest.tenancy = self.tenancy;
}else if([[segue identifier] isEqualToString: @"FormsView"]){
FormsSearchViewController *dest = (FormsSearchViewController *) [segue destinationViewController];
dest.allowedForms = [[self delegate] getFormsForSection:@"REPORTREPAIR"];
dest.tenancy = self.tenancy;
dest.formSectionType = @"REPORTREPAIR";
}else if([[segue identifier] isEqualToString: @"FormView"]){
FormViewController *dest = (FormViewController *) [segue destinationViewController];
dest.form = self.form;
dest.tenancy = self.tenancy;
dest.formSectionType = @"REPORTREPAIR";
}
else if([[segue identifier] isEqualToString: @"RepairsWebView"]){
WebViewController *dest = (WebViewController *) [segue destinationViewController];
dest.siteURL = [Common getReportRepairURL:self.tenancy];
dest.screenTitle = AGLocalizedString(@"Report a Repair", @"Report a Repair");
}
}
когда я отлаживаю код, мне известно, что метод prepareForSegueвызывается до события Action.В связи с этим, с точки зрения пользовательского интерфейса, я сталкиваюсь с ненормальным поведением в моем приложении.