2016-04-12 1 views
0

Я разрабатываю приложение часового типа, и у меня есть представление таблицы, которое должно иметь функциональность для удаления строк. Я видел учебное пособие с использованием меню содержимого. Но не знаю, как удалить строку из таблицы. Пожалуйста, помогите мне.Как удалить строку из таблицы в watchkit в объекте c

#import "HomeInterfaceController.h" 
#import "HomeTableRowController.h" 
#import "DetailHomeInterfaceController.h" 

@interface HomeInterfaceController() 
@property (unsafe_unretained, nonatomic) IBOutlet WKInterfaceTable *homeTable; 
@property (nonatomic,strong) NSArray *nameArr; 

@end 

@implementation HomeInterfaceController 

- (void)awakeWithContext:(id)context { 
    [super awakeWithContext:context]; 
    self.nameArr = [NSArray arrayWithObjects: @"Jill Valentine", @"Peter Griffin", @"Meg Griffin", @"Jack Lolwut", 
        @"Mike Roflcoptor", @"Cindy Woods", @"Jessica Windmill", @"Alexander The Great", 
        @"Sarah Peterson", @"Scott Scottland", @"Geoff Fanta", @"Amanda Pope", @"Michael Meyers", 
        @"Richard Biggus", @"Montey Python", @"Mike Wut", @"Fake Person", @"Chair", 
        nil]; 
    [self setupTable]; 

    // Configure interface objects here. 
} 

- (void)willActivate { 
    // This method is called when watch view controller is about to be visible to user 
    [super willActivate]; 
} 

- (void)didDeactivate { 
    // This method is called when watch view controller is no longer visible 
    [super didDeactivate]; 
} 

- (void)setupTable { 

    [self.homeTable setNumberOfRows:[self.nameArr count] withRowType:@"HomeTableRowController"]; 

    for (NSInteger i = 0; i < self.nameArr.count; i++) 
    { 

     HomeTableRowController *row = [self.homeTable rowControllerAtIndex:i]; 
     NSString *thisBook = [self.nameArr objectAtIndex:i]; 

     [row.reminderHeadlineLabel setText:thisBook]; 
     // [row.imageRow setImage:[UIImage imageNamed:@"abc.jpg"]]; 

    } 


} 

- (void)table:(WKInterfaceTable *)table didSelectRowAtIndex:(NSInteger)rowIndex 
{ 
    NSDictionary *d=[NSDictionary dictionaryWithObject:@"hi" forKey:@"nm"]; 
    [self presentControllerWithName:@"DetailHome" context:d]; 
} 
- (IBAction)deleteButtonAction { 
} 

@end 
+0

Вы можете добавить код, который вы сделали, и более конкретно? – Shrolox

+0

ничего, что я сделал так @Shrolox –

+0

Сначала попробуйте реализовать tableview с ячейками, тогда, если вы покажете код и конкретную проблему с ним, возможно, сообщество сможет вам помочь. Существует множество учебных пособий по созданию таблицы в objC. Например: http://swiftiostutorials.com/watchkit-tutorial/ – Shrolox

ответ

1

Вы должны вызвать removeRowsAtIndexes в вашей deleteButtonAction функции:

// first create an index set with the index of the row you want to delete 
NSIndexSet *indexes = [[NSIndexSet alloc] initWithIndex:index]; 
// then call the function 
[self.homeTable removeRowsAtIndexes:indexes]; 

Существует больше информации в docs

+0

Спасибо .... Есть ли способ удалить строку через контекстное меню .... Я имею в виду, что у меня было добавлено контекстное меню контроллера, где у меня есть табличный вид, так что это можно сделать Это?? –

+0

Я думаю, вы можете использовать атрибут 'tag' контекстного меню для хранения индекса вашей строки. Но поскольку это специфично для контекстных меню, возможно, вам стоит опубликовать новый вопрос об этом – Shrolox

+0

Конечно, я опубликую его и, пожалуйста, помогите мне с вашим ценным кодом :) –