Discussion Forums  >  Plugins, Customizing, Source Code

Replies: 7    Views: 94

Angry Ninja
Aspiring developer
Profile
Posts: 1045
Reg: Aug 25, 2013
Maine
17,150
09/24/13 10:00 AM (10 years ago)

Screen Transitions Overlapping

Hey guys, ever since I updated to iOS7, when the screen transitions to the next screen, the previous screen shows underneath for about 1 second before disappearing. Basically, the next screen loads on top of the old screen (showing both screens merged together basically), and it takes about a second for the old screen to disappear, leaving only the newly loaded screen. This happens on all screen transitions, not just a particular plugin, and doesn't matter if the plugin has a screen transition setting or not. Must be a BT_Core code somewhere that is awry. I know there are several "tweaks" to make things look right in iOS7... is there a fix for this one? Thanks.
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
09/24/13 10:15 AM (10 years ago)
I've noticed the same. Not sure if its intentional by Apple or not
 
Angry Ninja
Aspiring developer
Profile
Posts: 1045
Reg: Aug 25, 2013
Maine
17,150
like
09/24/13 10:43 AM (10 years ago)
I wouldn't think so. That wouldn't be a very good "improvement" by them to break something that was working fine. Also, apps I have done in the past, before buzztouch, transition fine with iOS7. These were strictly xcode created apps though.
 
Angry Ninja
Aspiring developer
Profile
Posts: 1045
Reg: Aug 25, 2013
Maine
17,150
like
09/24/13 02:39 PM (10 years ago)
I made progress on this. I found how to stop it from happening, but you have to insert the code on EVERY views file. Basically every plugin. I'm not good enough with Objective C to know if there is a line of code that will fix this universally instead of adding this to each file, but in my case it was like 15-20 files I had to add it to. I basically just searched my project for viewWillAppear and changed each one. Maybe Chris can help with this one, now that I have identified the problem. it works, just a pain to implement, especially if you have to download your code again and add your manual edits again. Basically, it hides the view until it's fully loaded, both for appearing and disappearing: In the plugin's .m file that contains the view, change: ----------------------------------- -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; ----------------------------------- TO THIS ----------------------------------- -(void)viewWillAppear:(BOOL)animated{ [super viewWillAppear:animated]; [self.view setAlpha:1]; ----------------------------------- Now, add the viewWillDisappear code right after the last } in the viewDidAppear (usually just before the "load data" section"), like this: ------------------------------------ -(void)viewWillDisappear:(BOOL)animated{ [super viewWillDisappear:animated]; [self.view setAlpha:0]; } ------------------------------------- Can anyone help find an easier way to implement this instead of changing 15-20 files?
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
09/24/13 02:59 PM (10 years ago)
Hmm - so you're basically forcing screen transitions to break? Surely there's a way to keep the transition but have the background move with it?
 
Angry Ninja
Aspiring developer
Profile
Posts: 1045
Reg: Aug 25, 2013
Maine
17,150
like
09/24/13 03:01 PM (10 years ago)
There probably is, I just haven't found it. ;). Couldn't find an easy way to universally disable all transition animations either
 
chris1
Code is Art
Profile
Posts: 3862
Reg: Aug 10, 2012
Austin, TX
50,120
like
09/24/13 05:03 PM (10 years ago)
That should be in the BT_viewController_Manager (or whatever it is). Follow the handleTapToLoad method until you find the pushViewController method. There's a setting for animated:true/false there. But it won't look great to disable all transitions.
 
Angry Ninja
Aspiring developer
Profile
Posts: 1045
Reg: Aug 25, 2013
Maine
17,150
like
09/24/13 05:15 PM (10 years ago)
I'm hoping BT 3.0 will address the issue. ;)
 

Login + Screen Name Required to Post

pointerLogin to participate so you can start earning points. Once you're logged in (and have a screen name entered in your profile), you can subscribe to topics, follow users, and start learning how to make apps like the pros.