ios - uisplitviewcontroller: passing selected row from master to detail -
it's couple of days i've been struggling uisplitviewcontrollers, here's problem: have master view declared follows
#import <uikit/uikit.h> #import "detailviewcontroller.h" @class detailviewcontroller; @interface masterviewcontroller : uitableviewcontroller { nsmutablearray *title, *subtitle; unsigned int quantity; } @property (strong, nonatomic) detailviewcontroller *detailviewcontroller; @end in master's .m file works correctly (i'm able populate table sqlite db , show contents in rows). when comes select 1 row , populate detailed view on right side nothing happens. here row selection:
- (void)tableview:(uitableview *)tableview didselectrowatindexpath:(nsindexpath *)indexpath { myobject itemfromdb; /* ... db stuff here ... */ self.detailviewcontroller.detailitem = itemfromdb; } here's detailviewcontroller implementation:
@interface detailviewcontroller : uiviewcontroller <uisplitviewcontrollerdelegate> @property (strong, nonatomic) myobject *detailitem; @property (weak, nonatomic) iboutlet uilabel *name, *phone; @end and detail's .m:
#import "detailviewcontroller.h" @interface detailviewcontroller () - (void)configureview; @end @implementation detailviewcontroller - (void)setdetailitem:(myobject *)newitem { if (_detailitem != newitem) { _detailitem = newitem; [self configureview]; } } - (void)configureview { if (self.detailitem) { self.name.text = [self.detailitem name]; self.phone.text = [self.detailitem phone]; } } - (void)viewdidload { [super viewdidload]; [self configureview]; } - (void)didreceivememorywarning { [super didreceivememorywarning]; } in simple words: detail isn't noticing changes after selection of row. help?
you never defined self.detailviewcontroller. should this:
self.detailviewcontroller = self.splitviewcontroller.viewcontrollers[1];
Comments
Post a Comment