के हिस्से के रूप में मैं स्टेटसबार स्टाइल को कैसे अपडेट करूं मैं एक कस्टम एनीमेशन के साथ एक मॉडल ViewController
प्रस्तुत करने के लिए आईओएस 7 UIviewControllerAnimatedTransitioning
प्रोटोकॉल का उपयोग कर रहा हूं। एनीमेशन सही तरीके से काम करता है, हालांकि, मैं प्रस्तुत प्रस्तुत वीसी की तुलना में एक अलग स्टेटस बार शैली रखने के लिए नए प्रस्तुत ViewController
चाहता हूं।कस्टम ट्रांज़िशन
जो मैं देख रहा हूं वह यह है कि -(UIStatusBarStyle)preferredStatusBarStyle
को ViewController
(वास्तव में कई बार) और नए प्रस्तुत ViewController
पर कभी भी कॉल नहीं किया जाता है। यदि मैं स्टेटस बार के साथ कस्टम एनीमेशन सब कुछ हटा देता हूं जैसा कि मैं अपेक्षा करता हूं।
क्या मेरे एनीमेट ट्रांज़िशन फ़ंक्शन में रूट व्यू कंट्रोलर या कुछ अपडेट करने के लिए मुझे कुछ खास करने की ज़रूरत है? मैंने मैन्युअल रूप से [UIApplication sharedApplication] setStatusBarStyle
के साथ स्टेटसबार सेट करने का प्रयास किया है लेकिन यह काम नहीं करता है (मुझे लगता है क्योंकि मैं आईओएस 7 व्यू कंट्रोलर आधारित स्टेटस बार स्टाइल का उपयोग कर रहा हूं)।
यह animateTransition के लिए मेरे कोड है:
- (void)animateTransition:(id<UIViewControllerContextTransitioning>)transitionContext
{
UICollectionViewCell *activeCell;
if ([self.collectionView.visibleCells containsObject:self.cellForActiveIdeaVC]) {
activeCell = self.cellForActiveIdeaVC;
}
UIView *container = transitionContext.containerView;
UIViewController *fromVC = [transitionContext viewControllerForKey:UITransitionContextFromViewControllerKey];
UIViewController *toVC = [transitionContext viewControllerForKey:UITransitionContextToViewControllerKey];
UIView *fromView = fromVC.view;
UIView *toView = toVC.view;
CGRect beginFrame;
if (activeCell) {
beginFrame = [container convertRect:activeCell.bounds fromView:activeCell];
} else {
beginFrame = CGRectMake(container.width/2, container.height/2, 0, 0);
}
CGRect endFrame = [transitionContext initialFrameForViewController:fromVC];
UIView *move = nil;
if (toVC.isBeingPresented) {
toView.frame = endFrame;
move = [toView snapshotViewAfterScreenUpdates:YES];
move.frame = beginFrame;
} else {
if (activeCell) {
move = [activeCell snapshotViewAfterScreenUpdates:YES];
} else {
move = [fromView snapshotViewAfterScreenUpdates:YES];
}
move.frame = fromView.frame;
[fromView removeFromSuperview];
}
[container addSubview:move];
[UIView animateWithDuration:.5
delay:0
usingSpringWithDamping:700
initialSpringVelocity:15
options:0
animations:^{
move.frame = toVC.isBeingPresented ? endFrame : beginFrame;
}
completion:^(BOOL finished) {
[move removeFromSuperview];
if (toVC.isBeingPresented) {
toView.frame = endFrame;
[container addSubview:toView];
} else {
if (self.cellForActiveIdeaVC) {
self.cellForActiveIdeaVC = nil;
}
}
[transitionContext completeTransition:YES];
}];
}
किसी भी संकेत दिए गए बहुत सराहना!
मुझे पता था कि यह ऐसा कुछ था, मुझे बस नहीं मिला वह सेटिंग बहुत बहुत धन्यवाद! –