jcad
jcad

Reputation: 63

Sending multiple params through selector?

I want to use a selector to get to my controller and pass 2 values, the sender and a number.

Issue is that i get the crash:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[CDCFaderController changeView:]: unrecognised selector sent to instance 0x109db6f40'

The code makes sense to me so not sure why, anyone able to help?

[self.viewController performSelector:@selector(changeView:) withObject:self withObject:[NSNumber numberWithInteger: channel.channelNumber]];

Receiver:

- (void)changeView:(UIButton *)sender chanToPush:(NSNumber*)channel

Upvotes: 0

Views: 109

Answers (2)

Lalit kumar
Lalit kumar

Reputation: 2207

Use as this

[self performSelector:@selector(changeView:chanToPush:) withObject:self withObject:[NSNumber numberWithInteger: channel.channelNumber]];

- (void)changeView:(UIButton *)sender chanToPush:(NSNumber*)channel
{
    NSLog(@"channel is --%@",channel);
}

OR

[self performSelector:@selector(changeView:) withObject:[NSNumber numberWithInteger: channel.channelNumber]];

- (void) changeView:(NSNumber *)num
{ //
}

Upvotes: 0

Bilal
Bilal

Reputation: 19156

Selector is wrong. @selector(changeView:) should be this @selector(changeView:chanToPush:).

Try this.

[self.viewController performSelector:@selector(changeView:chanToPush:) withObject:self withObject:[NSNumber numberWithInteger: channel.channelNumber]];

Upvotes: 3

Related Questions