Q:

NSInvalidArgumentException when posting notification

I am trying to use the notification system in order to have a detail view in a Splitviewcontroller to update the tableview.  I declared the notification as follows:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(pushView:) name:@"pushView" object:nil];

and the selector itself:
- (void) pushView:(UIViewController *) viewController {
    [self.navigationController pushViewController:viewController animated:YES];
}

Now, in the detailview I create the view-controller and call create the notification:
   ArticleTableViewController *articleTableView  = [[ArticleTableViewController alloc] initWithCategory:catInt];

   [[NSNotificationCenter defaultCenter] postNotificationName:@"pushView" object:articleTableView];

I assumed that that would work, but I get the error:

* Terminating app due to uncaught
  exception
  'NSInvalidArgumentException', reason:
  '-[NSConcreteNotification
  setParentViewController:]:
  unrecognized selector sent to instance
  0x5a3a290'

So I guess I am doing something wrong in how including the detailViewController in the notification to be used to push in. 

A:

The method definition for handling the notification seems to be wrong. 
- (void) pushView:(UIViewController *) viewController

should be,
- (void) pushView:(NSNotification *) notification

The actual notification is passed as the argument, not any view controllers.  To achieve what you want, try the following. 
- (void) pushView:(NSNotification *) notification

    NSDictionary *userInfo = [notification userInfo];
    UIViewController *viewController = (UIViewController *)[userInfo objectForKey:@"ViewController"];
    [self.navigationController pushViewController:viewController animated:YES];
}

And while posting the notification,
    ArticleTableViewController *articleTableView  = [[ArticleTableViewController alloc] initWithCategory:catInt];
    NSDictionary *userInfo = [NSDictionary dictionaryWithObject:articleTableView forKey:@"ViewController"];
    [[NSNotificationCenter defaultCenter] postNotificationName:@"pushView" object:nil userInfo:userInfo];

