Ответ alph0x довольно полезен. Но вы также можете сделать еще одну вещь, чтобы выполнить то, что вы просите, если хотите только, чтобы действие выполнялось при нажатии определенной кнопки в строке.
Это второе решение состоит в создании класса для пользовательской строки с IBAction
#import <WatchKit/WatchKit.h>
@interface MyRow : NSObject
// Methods
- (IBAction)buttonClick;
@end
И в методе ButtonClick, вы можете указать действие, как и в примере последующего использования pushControllerWithName: контекст идти к конкретному контроллеру интерфейса
#import "MyRow.h"
@implementation MyRow
- (IBAction)buttonClick {
[self goToInterface:@"feedInterface"];
}
- (void)goToInterface:(NSString *)interfaceName{
NSDictionary *contextToSend = [NSDictionary dictionaryWithObjectsAndKeys:@"FeedTitle", @"title",
@"lalala", @"secondValue",
@"lelele", @"thirdValue",
@"other value", @"other", nil];
[self pushControllerWithName:interfaceName context:contextToSend];
}
@end
Вы можете отправить информацию о своей строке в контекст. В этом примере я решил отправить словарь с некоторыми значениями.
В параметре interfaceName вы должны указать идентификатор контроллера интерфейса, который вы можете установить в своем раскадровке. Смотрите рисунок ниже:
И скажите на XCode, что ваша строка таблицы имеет пользовательский класс MyRow
Примечание: не забудьте присвоить кнопку методу IBAction;)
Вы можете использовать простой UIViewController, как и для приложения, я предполагаю, что это доступно для расширения, но да, вам нужно сделать [self.view addSubview: anothercontroller.view]; и оживить, как push, вместо того, чтобы нажимать на навигационный контроллер. – iphonic