objective c - How do I show a navigation bar on top of quicklook view on ios? -
i have controller in application responsible loading quicklook view of csv file. file loads fine , i'm able render quicklook view without error. problem i'm facing giving user ability close quicklook view.
i trying render navigation bar close button part of view rendering quick look. navigation bar not show up. i'm setting elements after viewdidload. here code controller.
#import "jornadadocpreviewviewcontroller.h" @interface jornadadocpreviewviewcontroller () @end @implementation jornadadocpreviewviewcontroller -(id)initwidtharray:(nsarray*)array; { self = [super init]; if(self) { arrayofdocuments = array; } return self; } - (void)viewdidload { [super viewdidload]; // additional setup after loading view. self.datasource = self; // item preview [self setcurrentpreviewitemindex:0]; self.delegate = self; uibarbuttonitem *closebutton = [[uibarbuttonitem alloc] initwithtitle:@"close" style:uibarbuttonitemstyleplain target:self action:@selector(closethis)]; nsarray *mytoolbaritems = [nsarray arraywithobjects:closebutton, nil]; self.toolbaritems = mytoolbaritems; } - (void)didreceivememorywarning { [super didreceivememorywarning]; // dispose of resources can recreated. } - (void)viewwillappear:(bool)animated { [super viewwillappear:animated]; self.navigationcontroller.toolbarhidden = no; } - (void)viewwilldisappear:(bool)animated { [super viewwilldisappear:animated]; self.navigationcontroller.toolbarhidden = yes; } - (nsinteger) numberofpreviewitemsinpreviewcontroller: (qlpreviewcontroller *) controller { return [arrayofdocuments count]; } /*--------------------------------------------------------------------------- * *--------------------------------------------------------------------------*/ - (id <qlpreviewitem>)previewcontroller: (qlpreviewcontroller *)controller previewitematindex:(nsinteger)index { // break path components (filename , extension) nsarray *filecomponents = [[arrayofdocuments objectatindex: index] componentsseparatedbystring:@"."]; // use filename (index 0) , extension (index 1) path nsstring *path = [[nsbundle mainbundle] pathforresource:[filecomponents objectatindex:0] oftype:[filecomponents objectatindex:1]]; nslog(@"path %@", [filecomponents objectatindex:0]); return [nsurl fileurlwithpath:[arrayofdocuments objectatindex: index]]; } @end ------ i've tried ----- doesn't seem doing trick
uiview *previewview = [[uiview alloc] initwithframe:cgrectmake(20, 20, self.view.frame.size.width - 20, self.view.frame.size.height - 20)]; //[self.view addsubview:previewview]; jornadadocpreviewviewcontroller *previewer = [[jornadadocpreviewviewcontroller alloc] initwidtharray:value]; [previewview.window setrootviewcontroller:previewer ]; //[self.view bringsubviewtofront:previewview]; [self.navigationcontroller pushviewcontroller:previewer animated:yes];
don't directly show preview controllers view. instead, push preview controller navigation controller stack , navigation bar automatically shown done button (which call delegate when appropriate).
Comments
Post a Comment