добавление избранного в приложение для iPhone iphone sdk - PullRequest
2 голосов
/ 02 ноября 2010

Я хочу добавить функцию автоматического избранных, которая работает следующим образом:

У меня есть подробный вид с именем ячейки и непроверенной звездой. Пользователь нажимает на непроверенную звезду, звездочка проверяется, и конкретное имя ячейки добавляется в другое представление. В любое время пользователь может перейти к подробному виду и снова нажать на звездочку, и звезда не будет отмечена, а имя ячейки будет удалено из другого представления.

Я хочу сделать это с пользовательской кнопкой в ​​качестве звезды и табличным представлением в качестве другого представления. Предпочтительно использовать IBAction или IBOutlet.

Мой код для моей кнопки в моем детализированном виде

-(IBAction)toggleFav:(UIButton *)sender {
if([sender isSelected]){

    //...
    [sender setSelected:NO];
    NSMutableArray *array = [[[NSUserDefaults standardUserDefaults] objectForKey:@"valueSaver"] mutableCopy];
    [array removeObject:[NSString stringWithString:self.selectedSushi]];
    [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"valueSaver"];
    [array release];

} else {

    //...    
    [sender setSelected:YES];
    NSMutableArray *array = [[[NSUserDefaults standardUserDefaults] objectForKey:@"valueSaver"] mutableCopy];
    [array addObject:[NSString stringWithString:self.selectedSushi]];
    [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"valueSaver"];
    [array release];
}

}

1 Ответ

4 голосов
/ 02 ноября 2010

Делегация - ваш друг:

  • Напишите контроллер для этого подробного вида, который содержит звезду.
  • В этом контроллере есть член-делегат типа id<AProtocolDefindeByYou> delegate.
  • В объявлении протокола вы можете использовать такие методы, как informOfCheckTriggeredOnStar: и informOfUnCheckTriggeredOnStar:
  • Вы реализуетеэтот метод deletegegate в контроллере представления избранных и установите этот контроллер в качестве делегата для каждого подробного представления.

Делегирование & Протоколы

edit
Quick'n'Dirty - я написал небольшой пример кода для вас.Он очень грубый и не очень красивый, но демонстрирует, как он работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...