2015-04-03 5 views
0

Я разрабатываю приложение для просмотра яблока, где мне нужно показать название заголовка top10, и я успешно показал его. в следующем шаге я должен добавить событие действия, чтобы нажать, который перенаправит пользователя на следующий экран, но я путаю, какой контроллер использовать здесь. я должен показать все каналы в формате разбивки на страницы, а затем щелкнуть, чтобы показать его подробное представление.Интерфейс Apple watch

Неужели кто-то пытался с этим подходом? Я использую UIButton там, но у него есть ограничение текста, поэтому не могу его использовать, и для tableview он прокручивает по вертикали, где мне нужен прокрутка по горизонтали.

+0

Вы можете использовать простой UIViewController, как и для приложения, я предполагаю, что это доступно для расширения, но да, вам нужно сделать [self.view addSubview: anothercontroller.view]; и оживить, как push, вместо того, чтобы нажимать на навигационный контроллер. – iphonic

ответ

0

Если я понимаю, вам нужно иметь таблицу с 10 строками, и вам нужно иметь возможность использовать одну строку и просматривать сведения о том, который вы выбрали, если это правильно, вам нужно всего лишь использовать Метод из WKInterfaceTable "- (id) rowControllerAtIndex: (NSInteger) index", с этим (работает как UITableView с делегатом) вы можете обрабатывать каждое действие строки после прослушивания.

1

Ответ 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 вы должны указать идентификатор контроллера интерфейса, который вы можете установить в своем раскадровке. Смотрите рисунок ниже: enter image description here

И скажите на XCode, что ваша строка таблицы имеет пользовательский класс MyRow enter image description here

Примечание: не забудьте присвоить кнопку методу IBAction;)