ios - iPad Device orientation using statusBarOrientation -
ios - iPad Device orientation using statusBarOrientation -
(xcode 6, swift, ios8)
i trying find device orientation ipad, , seems needlessly complicated. going wrong?
at first, tried  utilize interfaceorientation of uiviewcontroller, unreliable , deprecated. apple recommend using statusbarorientation property. (1)
statusbarorientation of type uiapplication. tried create instance so:
var o: uiapplication    and test:
if (o.statusbarorientation.islandscape) { ... }    but received error
variable 'o' used before  beingness initialized.    which makes no sense me @ all. why initialize value? overwrite value want!?
then tried creating variable recommended in docs:
var statusbarorientation: uiinterfaceorientation    but on trace:
statusbarorientation = (uikit.uiinterfaceorientation) (0xa0)
so tried subclass uiapplication, , access property through subclass.
from here, more complexity. appears "every app must have 1 instance of uiapplication (or subclass of uiapplication)." (2)
this led me  next post, seems create main routine in swift?! subclass uiapplication swift
again, goal grab current device orientation, , test in conditional. pseudocoded:
var o = (get device orientation) if (o == portrait ) { ... } else { ... }    as can see, i'm in weeds... help appreciated.
edit: did manage sort-of working following:
var o = uiapplication.sharedapplication().statusbarorientation; if (o.islandscape) { ...    however, on initial load, when device rotated landscape, o.islandscape  beingness reported false.
search documentation "uiviewcontroller," , in "configuring view rotation settings." under discussion, "do not  utilize property informing layout decisions. instead,  utilize statusbarorientation property, described in uiapplication class  reference."
search documentation "uiapplication" , under subclassing notes
there appear couple of things wrong here i'll seek clear up. first of all, next doesn't create instance of uiapplication, simply variable of type.
var o: uiapplication    if want create instance of uiapplication, should doing this.
let o: uiapplication = uiapplication()    from there, correctly discovered, shouldn't creating additional instances of uiapplication. instead, should accessing singleton instance, sharedapplication().
note: have same issue orientation variable did app delegate variable.
anyway, when set together, can current status bar orientation following.
if  allow theappdelegate = uiapplication.sharedapplication() {      allow orientation = theappdelegate.statusbarorientation      if orientation.isportrait {         // portrait     } else {         // landscape     } }        ios xcode ipad orientation swift 
 
Comments
Post a Comment