Это не дает прямого ответа на вопрос, а скорее делает предположение о цели вопроса.
Если у вас есть представление и в этом представлении вам нужно вызвать метод для другого объекта, например, скажем, контроллера представления, вы можете вместо этого использовать NSNotificationCenter.
Сначала создайте строку уведомления в заголовочном файле
#define SLCopyStringNotification @"ShaoloCopyStringNotification"
По вашему мнению звоните postNotificationName:
- (IBAction) copyString:(id)sender
{
[[NSNotificationCenter defaultCenter] postNotificationName:SLCopyStringNotification object:nil];
}
Затем в вашем контроллере представления вы добавляете наблюдателя. Я делаю это в viewDidLoad
- (void)viewDidLoad
{
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(copyString:)
name:SLCopyStringNotification
object:nil];
}
Теперь (также в том же контроллере представления) реализуйте ваш метод copyString: как показано в @selector выше.
- (IBAction) copyString:(id)sender
{
CalculatorResult* result = (CalculatorResult*)[[PercentCalculator sharedInstance].arrayTableDS objectAtIndex:([self.viewTableResults indexPathForSelectedRow].row)];
UIPasteboard *gpBoard = [UIPasteboard generalPasteboard];
[gpBoard setString:result.stringResult];
}
Я не говорю, что это правильный способ сделать это, просто он выглядит чище, чем запуск цепочки первого респондента. Я использовал этот код для реализации UIMenuController в UITableView и передачи события обратно в UIViewController, чтобы я мог что-то сделать с данными.