gpt4 book ai didi

iOS:isMovingToParentViewController 未按预期工作

转载 作者:技术小花猫 更新时间:2023-10-29 11:12:58 26 4
gpt4 key购买 nike

我的设置很简单,我的问题与 this one 没有太大区别| .但是为了更好地解释它,我将其发布在这里:

NavController -> VC1 -> VC2

VC1 是 NavController 的 Root View Controller 。VC2 可通过 VC1 的 Push segue 访问。

我想在 VC1 中检测是否:

它直接作为 Root View Controller 出现(通过 Push)VC2被弹出的结果出现

我阅读了文档,上面写着以下内容应该告诉我以后是否为真。

isMovingToParentViewController == NO 

然而事实并非如此,上述条件总是成立的。这意味着,(self.isMovingToParentViewController == NO) 总是在发生。

这是我的代码:

- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
self.navigationController.navigationBarHidden = YES;

//pushed to stack
if (self.isMovingToParentViewController == YES)
{
//First time
}
else
//popped off
{
//via Pop from VC2
}
}

viewDidAppear 也是如此。

为了检查事实,我在开头放置了断点,并检查了以下所有情况是否均为 FALSE,在这两种情况下:

([self isMovingFromParentViewController])
([self isMovingToParentViewController])
([self isBeingPresented])
([self isBeingDismissed])

发生了什么事?我的 Storyboard 中有什么地方搞砸了吗?请帮助...

最佳答案

不幸的是,isMovingToParentViewController 对于 Root View Controller 来说不是真的,所以我通常用 BOOL 来处理这种情况,

@implementation ViewController {
BOOL isFirstAppearance;
}

- (void)viewDidLoad
{
[super viewDidLoad];
isFirstAppearance = YES;
}

-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
if (isFirstAppearance) {
NSLog(@"root view controller is moving to parent");
isFirstAppearance = NO;
}else{
NSLog(@"root view controller, not moving to parent");
}
}

关于iOS:isMovingToParentViewController 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23272878/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com