У меня есть сценарий раскрутки в каком-то устаревшем коде, который имеет слишком много дублирования.Я пытаюсь сократить его.
- (IBAction)unwindWithNewData:(UIStoryboardSegue *)segue {
if ([segue.sourceViewController isKindOfClass:DistantVC1.class]) {
DistantVC1 *sourceVC = (DistantVC1 *)segue.sourceViewController;
self.activeUUID = sourceVC.data.uuid;
} else if ([segue.sourceViewController isKindOfClass:DistantVC2.class]) {
DistantVC2 *sourceVC = (DistantVC2 *)segue.sourceViewController;
self.activeUUID = sourceVC.data.uuid;
} else if ([segue.sourceViewController isKindOfClass:DistantVC3.class]) {
DistantVC3 *sourceVC = (DistantVC3 *)segue.sourceViewController;
self.activeUUID = sourceVC.data.uuid;
} else if ([segue.sourceViewController isKindOfClass:DistantVC4.class]) {
DistantVC4 *sourceVC = (DistantVC4 *)segue.sourceViewController;
self.activeUUID = sourceVC.data.uuid;
}
}
Я бы хотел сохранить обобщенную версию любого viewcontroller в верхней части функции и просто заполнить ее соответствующей, а затем вызвать self.установщик activeUUID один раз.Что-то вроде:
- (IBAction)unwindWithNewData:(UIStoryboardSegue *)segue {
id sourceVC;
if ([segue.sourceViewController isKindOfClass:DistantVC1.class]) {
sourceVC = (DistantVC1 *)segue.sourceViewController;
} else if ([segue.sourceViewController isKindOfClass:DistantVC2.class]) {
sourceVC = (DistantVC2 *)segue.sourceViewController;
} else if ([segue.sourceViewController isKindOfClass:DistantVC3.class]) {
sourceVC = (DistantVC3 *)segue.sourceViewController;
} else if ([segue.sourceViewController isKindOfClass:DistantVC4.class]) {
sourceVC = (DistantVC4 *)segue.sourceViewController;
}
self.activeUUID = sourceVC.data.uuid;
}
Есть идеи?Спасибо!