gpt4 book ai didi

iphone - performSegueWithIdentifier 触发但不加载下一个 View

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:03:12 26 4
gpt4 key购买 nike

在我的 Storyboard中,我有一个 NavViewController,它将 Root View 设置为 ViewController1。 ViewController1 然后使用标识符“socialSeg”向 ViewController2 推送 segue。 ViewController1 有一个 UIImageView,我用它来加载摄像机。在用户录制视频并选择“使用”后,我想加载下一个 View Controller 。在 ViewController1.m 中,我有以下内容:

- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSLog(@"Performing Segue with ID");
[self performSegueWithIdentifier:@"socialSeg" sender:self];
}

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@"Prepping");
}

两个 NSLog 都在运行,但我的屏幕上没有任何反应。我没有看到 ViewController2,也没有弹出错误消息。我这样做正确吗?

相关问题:我应该在 self(当前 ViewController)上运行 performSegueWithIdentifier,还是应该在 self.navigationController 上运行?

编辑:我试图稍微缩短我的问题以使帖子更短,我意识到您可能需要更多上下文。

这是我的 full storyboard .基本上“视频 View Controller ”将是 ViewController1,而“社交 View Controller ”将是 ViewController2。当我单击“ Root View Controller ”按钮(录制视频)时,该 segue 工作正常,这就是我将其排除在外的原因。 “Root View Controller”是否有可能抛出问题?

最佳答案

您的performSegue 代码没有任何问题。当您执行此 Segue 时,您的选择器动画似乎仍在运行。尝试通过如下所示修改当前调用,在 presentViewController 的完成 block 中调用 performSegue

[imagePickerController presentViewController:YES completion:^() {
NSLog(@"Performing Segue with ID");
[self performSegueWithIdentifier:@"socialSeg" sender:self];
}];

请确保将 imagePickerController 替换为您的弹出图像选择器 Controller 的名称。

这不是理想的解决方案,但您也可以延迟执行您的 performSegue 以确保您的图像选择器动画已停止:

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//1.5 is number of seconds its going to wait before executing the block of code
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, 1.5 * NSEC_PER_SEC), dispatch_get_current_queue(), ^{
NSLog(@"Performing Segue with ID");
[self performSegueWithIdentifier:@"socialSeg" sender:self];
});
}

注意:问题是当 performSegue 尝试启动另一个动画以加载下一个 View Controller 。由于一个动画尚未完成,因此 performSegue 动画将被忽略并且 View Controller 不会加载。

这里有一个相关的问答: performSegueWithIdentifier not working

关于iphone - performSegueWithIdentifier 触发但不加载下一个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18885716/

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