And*_*rew 62 iphone objective-c
加载视图时,我想查看是否是因为用户按下了后退按钮.我怎么检查这个?
And*_*rew 108
我发现检测UINavigationController的后退按钮(iOS 5.0之前)的最佳解决方案是通过验证当前视图控制器不在导航控制器的视图控制器堆栈中.
- (void)viewDidDisappear:(BOOL)animated
以逻辑方式检查此条件可能更安全,在调用方法时,视图控制器极有可能从堆栈中删除.
iOS 5.0之前:
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
if (![[self.navigationController viewControllers] containsObject:self]) {
// We were removed from the navigation controller's view controller stack
// thus, we can infer that the back button was pressed
}
}
Run Code Online (Sandbox Code Playgroud)
iOS 5.0+你可以使用-didMoveToParentViewController:
- (void)didMoveToParentViewController:(UIViewController *)parent
{
// parent is nil if this view controller was removed
}
Run Code Online (Sandbox Code Playgroud)
小智 80
在您的viewWillDisappear方法中检查
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
if ([self isMovingFromParentViewController]) {
//specific stuff for being popped off stack
}
}
Run Code Online (Sandbox Code Playgroud)
这仅适用于iOS 5后
为了完整起见,混合两种最upvoted答案(的1,2中SWIFT):
override func willMoveToParentViewController(parent: UIViewController?) {
super.willMoveToParentViewController(parent)
if parent == nil {
// view controller is popping
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
43790 次 |
最近记录: |