ios - master detail app crashes instantly when using push segue -


first of all, if is, somehow, dup post, feel free point me correct 1 because have not found after hours of searching.

i using masterdetail viewcontroller in app, first week or of development, had no additional viewvontrollers or segues other default. wrote main code, , master , detail viewcontroller working perfectly. added vc push segue detail view, app crashes instantly. error :

***terminating app due uncaught exception 'nsinvalidargumentexception', reason '-[uinavigationcontroller setplayer:]: unrecognized selector sent instance ...' , bunch of hex.

in appdelegate.m, if comment out line:

rightviewcontroller.delegate = rightviewcontroller

then app start , push segue work, now, obviously, if select cell in masterview, crash giving error:

***terminating app due uncaught exception 'nsinvalidargumentexception', reason '-[uinavigationcontroller selectedplayer:]: unrecognized selector sent instance ...' , bunch of hex.

here of code think relevant:

appdelegate.m

#import "appdelegate.h" #import "leftviewcontroller.h" #import "rightviewcontroller.h"  @implementation appdelegate  - (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions {     uisplitviewcontroller *splitviewcontroller = (uisplitviewcontroller *)self.window.rootviewcontroller;     uinavigationcontroller *leftnavcontroller = [splitviewcontroller.viewcontrollers objectatindex:0];     leftviewcontroller *leftviewcontroller = (leftviewcontroller *)[leftnavcontroller topviewcontroller];     rightviewcontroller *rightviewcontroller = [splitviewcontroller.viewcontrollers objectatindex:1];      player *selectedplayer = [[leftviewcontroller preclears]objectatindex:0];     [rightviewcontroller setplayer:selectedplayer];      leftviewcontroller.delegate = rightviewcontroller;     return yes; }  - (void)applicationwillterminate:(uiapplication *)application {     // called when application terminate. save data if appropriate.   see applicationdidenterbackground:. }  @end 

leftviewcontroller.m (part)

#pragma mark - table view delegate  - (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath {      [tableview deselectrowatindexpath:indexpath animated:yes];      //re-fetch feed postgres database when user selects entry      [jsonhttpclient getjsonfromurlwithstring:@"http://myurl" completion:^(nsdictionary *json, jsonmodelerror *err) {     nserror* error = nil;     _feed = [[postgresfeed alloc] initwithdictionary:json error:&error];      //print data fethced nslog in json format      [[nsnotificationcenter defaultcenter] postnotificationname:@"mynotification" object:nil userinfo:[[json objectforkey:@"player"] objectatindex:indexpath.row]];  }];  player *selectedplayer = [_players objectatindex:indexpath.row];  if (_delegate)      {         [_delegate selectedplayer:selectedplayer];     } } 

so, doing wrong, can not figure out is. have done lot of googling , have not found answer yet. in case wants know, new ios , obj c, , masterdetail app based off of ray wenderlich tutorial ipad splitviews. have checked out of scott sherwood tutorials on segues, have not found answers there.

let me know if more code needed.

the error message

-[uinavigationcontroller setplayer:]: unrecognized selector ... 

indicates

rightviewcontroller *rightviewcontroller = [splitviewcontroller.viewcontrollers objectatindex:1]; 

returns uinavigationcontroller instance, , not rightviewcontroller instance expected. solution depends on structure of view controllers hierarchy. may have proceed similar left view controller:

uinavigationcontroller *rightnavcontroller = [splitviewcontroller.viewcontrollers objectatindex:1]; rightviewcontroller *rightviewcontroller = (rightviewcontroller *)[rightnavcontroller topviewcontroller]; 

Comments

Popular posts from this blog

javascript - How to get current YouTube IDs via iMacros? -

c# - Maintaining a program folder in program files out of date? -

emulation - Android map show my location didn't work -