Обычно эта ошибка возникает, когда мы отправляем заголовок после эха или печати. Если эта ошибка возникает на определенной странице, убедитесь, что страница не выполняет эхо-сигналы перед вызовом start_session()
.
Пример непредсказуемой ошибки:
<?php //a white-space before <?php also send for output and arise error
session_start();
session_regenerate_id();
//your page content
Еще один пример:
<?php
includes 'functions.php';
?> <!-- This new line will also arise error -->
<?php
session_start();
session_regenerate_id();
//your page content
Вывод: не выводить символ перед тем, как вызывать функции session_start()
или header()
, даже не с помощью пробела или новой строки
Вы можете проверить определенный контроллер вида на навигационном контроллере, например:
UINavigationcontroller.ViewControllers [номер этого контроллера представления]
и применить к нему эту анимацию.
Sub class UINavigationController
и использовать переход CoreAnimation's
для изменения анимации push / pop.
enum TransitionType {
case fade
case movein
case push
case reveal
}
enum TransitionSubtype {
case right
case left
case top
case bottom
}
class MyNavigationController: UINavigationController {
fileprivate func getTransition(by type: TransitionType) -> String? {
var transition: String?
switch type {
case .fade:
transition = kCATransitionFade
break
case .push:
transition = kCATransitionPush
break
case .movein:
transition = kCATransitionMoveIn
break
case .reveal:
transition = kCATransitionReveal
break
default:
transition = nil
break
}
return transition
}
fileprivate func getSubTransition(by type: TransitionSubtype) -> String? {
var transition: String?
switch type {
case .right:
transition = kCATransitionFromRight
break
case .left:
transition = kCATransitionFromLeft
break
case .top:
transition = kCATransitionFromTop
break
case .bottom:
transition = kCATransitionFromBottom
break
default:
transition = nil
break
}
return transition
}
func display(viewController: UIViewController, animated: Bool, animationType: TransitionType = .push, animationSubtype: TransitionSubtype = .left) -> Bool {
guard let type = getTransition(by: animationType) else {return false}
guard let subtype = getSubTransition(by: animationSubtype) else {return false}
if animated {
let transition = CATransition()
transition.duration = 0.35
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = type
transition.subtype = subtype
self.view.layer.add(transition, forKey: nil)
}
_ = self.pushViewController(viewController, animated: false)
return true
}
func hide(animated: Bool, animationType: TransitionType = .push, animationSubtype: TransitionSubtype = .left) -> Bool {
guard let type = getTransition(by: animationType) else {return false}
guard let subtype = getSubTransition(by: animationSubtype) else {return false}
if animated {
let transition = CATransition()
transition.duration = 0.35
transition.timingFunction = CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseInEaseOut)
transition.type = type
transition.subtype = subtype
self.view.layer.add(transition, forKey: nil)
}
_ = self.popViewController(animated: false)
return true
}
}