ios - iPad simulator and external screen -
i have application wish show on external screen.
the problem when go hardware -> external displays , select 1 of them - events aren't triggered. why?
this doesn't entered:
if ([[uiscreen screens] count] > 1)
so have added next code:
- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions { //some code ... [self checkforexistingscreenandinitializeifpresent]; [self setupscreenconnectionnotificationhandlers]; return yes: } - (void)checkforexistingscreenandinitializeifpresent { if ([[uiscreen screens] count] > 1) { // screen object represents external display. uiscreen *secondscreen = [[uiscreen screens] objectatindex:1]; // screen's bounds can create window of correct size. cgrect screenbounds = secondscreen.bounds; self.secondwindow = [[uiwindow alloc] initwithframe:screenbounds]; self.secondwindow.screen = secondscreen; self.externalwindow=[[externaldisplayviewcontroller alloc]initwithnibname:@"externaldisplayviewcontroller" bundle:nil]; self.externalwindow.view.frame=screenbounds; self.secondwindow.rootviewcontroller=self.externalwindow; // set initial content display... // show window. self.secondwindow.hidden = no; } } - (void)setupscreenconnectionnotificationhandlers { nsnotificationcenter *center = [nsnotificationcenter defaultcenter]; [center addobserver:self selector:@selector(handlescreendidconnectnotification:) name:uiscreendidconnectnotification object:nil]; [center addobserver:self selector:@selector(handlescreendiddisconnectnotification:) name:uiscreendiddisconnectnotification object:nil]; }
addition:
just tried add code in viewdidload
added this:
// check external screen. if ([[uiscreen screens] count] > 1) { } else { }
have opened external display , simulator - does't enter if block
the problem might initialisation of externaldisplayviewcontroller :
self.externalwindow=[[externaldisplayviewcontroller alloc]initwithnibname:@"externaldisplayviewcontroller" bundle:nil];
try :
[[externaldisplayviewcontroller alloc]initwithnibname:@"externaldisplayviewcontroller" bundle:nil]; uistoryboard *storyboard = [uistoryboard storyboardwithname:@"main" bundle:nil]; self.externalwindow= = [storyboard instantiateviewcontrollerwithidentifier:@"externaldisplayview"];
and also, need override handlescreendidconnectnotification
-(void)handlescreendidconnectnotification : (nsnotification *)anotification{ uiscreen *newscreen = [anotification object]; cgrect screenbounds = newscreen.bounds; self.alertfornotifydisplay = [[uialertview alloc] initwithtitle:@"external display connected." message:nil delegate:self cancelbuttontitle:@"ok" otherbuttontitles: nil]; [self.alertfornotifydisplay show]; if (!self.extwindow) { self.extwindow = [[uiwindow alloc] initwithframe:screenbounds]; self.extwindow.screen = newscreen; [self checkforexistingscreenandinitializeifpresent]; } }
Comments
Post a Comment