пользовательский метод делегата внутри didSelectRowAtIndexPath - PullRequest
1 голос
/ 21 февраля 2011

Я пытаюсь вызвать пользовательский метод делегата внутри метода делегата - (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath.Все выглядит хорошо, за исключением того, что я никогда не достигал своего пользовательского метода делегата, который должен быть вызван нажатием строки.Вот моя реализация делегирования:

@class SettingsList;
@protocol SettingsListDelegate

- (void) retrieveSettings:(SettingsList*)tableController Nazov:(NSString*)Nazov;

@end


@interface SettingsList : UITableViewController {

    id        delegate;
}

@property (nonatomic, assign) id              delegate;

@end


@synthesize delegate;

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSString *Nazov = [NSString stringWithString:[[self displayedObjects] objectAtIndex:indexPath.row]];

    NSLog(@"Vybral som %@", Nazov);
    [delegate retrieveSettings:self Nazov:Nazov];

}

Определение свойства делегата правильное, но не отображается на этом сайте, поскольку <> оно принимает в качестве тега.

во второмКласс это так


@interface ShakeControl : UIViewController 

- (void) retrieveSettings:(SettingsList*)tableController Nazov:(NSString*)Nazov{

}

, но никогда не достигать его в этом случае.Не уверен, что не так, потому что раньше использовали делегирование много раз и работали нормально, а теперь застряли на несколько часов ... любая помощь, будет оценена по достоинству .. спасибо

1 Ответ

3 голосов
/ 21 февраля 2011

Вы должны сделать это так: В заголовке:

@protocol SomeControllerDelegate <NSObject>
@optional
  - (void) somethingSelected: (Anything *)selection;
@end
@interface SomeController : UITableViewController
{
  id <SomeControllerDelegate> delegate;
}
@property (nonatomic, retain) id<SomeControllerDelegate> delegate;

В коде:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  [self.delegate somethingSelected:(Anything *)data];
}

В другом классе - добавить в определение:

@interface ShakeControl : UIViewController <SomeControllerDelegate>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...