Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios navigationController PoptorootViewController已激活:是不调用ViewWillDisplay_Ios_Pushviewcontroller - Fatal编程技术网

Ios navigationController PoptorootViewController已激活:是不调用ViewWillDisplay

Ios navigationController PoptorootViewController已激活:是不调用ViewWillDisplay,ios,pushviewcontroller,Ios,Pushviewcontroller,如果我在IOS内跑,而不是在swift内 [[navigationController popViewControllerAnimated:YES] viewWillAppear:YES] 它调用viewwill将出现在上一个VC上 我需要跳回根VC,并将视图显示为调用;但是, [[navigationController popToRootViewControllerAnimated:YES]视图将显示:YES]给我一个编码错误 在我的appDelegate中没有applicationWi

如果我在IOS内跑,而不是在swift内

[[navigationController popViewControllerAnimated:YES] viewWillAppear:YES] 
它调用viewwill将出现在上一个VC上

我需要跳回根VC,并将视图显示为调用;但是,

[[navigationController popToRootViewControllerAnimated:YES]视图将显示:YES]
给我一个编码错误

在我的appDelegate中没有applicationWillEnterForeground:和ApplicationIDBecMeactive:方法,有没有办法做到这一点

我已经试过了

 [[NSNotificationCenter defaultCenter] addObserver:self 
                                   selector:@selector(willEnterForeground:)
                                       name: UIApplicationWillEnterForegroundNotification
                                     object:nil];
在身体里

-(void) willEnterForeground:(Notification*)NotificationCenter
{
(self viewWillAppear:YES);
}

这似乎也不会调用viewwillbeen。

您的代码似乎不正确

首先,千万不要调用
视图将出现
——这是系统通知控制器视图将出现

第二,只是打电话:

[self.navigationController popViewControllerAnimated:YES];
将导航到堆栈中的上一个视图控制器,或:

[self.navigationController popToRootViewControllerAnimated:YES];
将导航到根视图控制器


在这两种情况下,
视图都将出现
是在视图出现时由系统调用的。

“给我一个编码错误”--你得到了什么错误?这在以前的操作系统中是正确的(我的代码以前是如何读取的),但在最新的操作系统中不是。您正在运行什么版本?在各种设备/模拟器上进行了快速测试。。。iOS 12.x至13.3<代码>视图将出现在“导航到”视图控制器中调用。这里有一个链接指向GitHub上的一个示例项目-每次您导航到VC时,它都会记录
视图将出现的调用。您正在运行哪个版本的Xcode?正如我之前所说的,我的代码过去只是导航回以前的VC或根VC,并且调用了ViewWillAppeal,但自从我更新到Catalina和最新的Xcode之后就没有了。如果我连接一个运行iOS 10或13的实际设备,它会像以前一样正常运行,但如果我使用最新的模拟器运行应用程序,它不会调用ViewWillDisplay或ViewDidDisplay。现在还有其他关于这个问题的帖子,我用运行在Catalina上的Xcode 11.3和iPhone8模拟器13.3创建了GitHub项目。当您运行我的示例应用程序时,您是否看到
视图将出现在调试控制台中的打印语句。在家工作,所以我现在无法访问我的开发计算机。您的示例代码是否包含用于显示以前或根视图控制器的推送视图和弹出视图?此时ViewWillDisplay无法调用。当原始VC出现时,会调用该方法,但当我弹出到根目录或上一个VC时,不会调用该方法。这就是为什么我开始在pop view命令中添加viewWillAppease:boolean。这在新的模拟器上是可行的,但是没有ViewWillDisplay:boolean它在运行13.3的实际设备上工作,但在模拟器上不工作。