gpt4 book ai didi

objective-c - 错误 'presentingViewController'

转载 作者:可可西里 更新时间:2023-11-01 03:36:48 29 4
gpt4 key购买 nike

在我的 MainViewController 中,我通过这个展示了另一个 View Controller :

MessageViewController *messageController = [[MessageViewController alloc]initWithNibName:nil bundle:nil];

[messageController setModalPresentationStyle:UIModalPresentationFullScreen];
[messageController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];

[self presentViewController:messageController animated:YES completion:nil];

[messageController release];

这将正确显示 View Controller 。但是,当我尝试返回呈现 View Controller (在本例中应该是 MainViewController)时,此代码不起作用:

if ([self.presentingViewController isKindOfClass:[MainViewController class]])
[(MainViewController *)self.presentingViewController setCurrentViewTag:2];

[self dismissModalViewControllerAnimated:YES];

我删除了“if..”条件以强制它设置当前 View 标签。发生错误,告诉我呈现的 View Controller 似乎是 UINavigationController:

[UINavigationController setCurrentViewTag:]: unrecognized selector sent to instance 0x8352a50

谁能告诉我为什么会这样?这段代码以前可以工作,但我不确定是什么改变导致它停止正常工作。

编辑

这是更新后的代码:

ReaderController *readerController = [[ReaderController alloc]initWithNibName:nil bundle:nil];
[readerController loadWhichViewToShow:2];

[self setDefinesPresentationContext:YES];

[readerController setModalPresentationStyle:UIModalPresentationFullScreen];
[readerController setModalTransitionStyle:UIModalTransitionStyleFlipHorizontal];

[self presentViewController:readerController animated:YES completion:nil];

[readerController release];

最佳答案

调用 [self presentViewController:messageController animated:YES completion:nil]; 不一定使用调用它的 vc 来呈现另一个 vc。默认情况下,它向上移动 vc 层次结构并在 Root View Controller 上显示另一个 vc。这就是为什么在您的情况下呈现 View Controller 是 UINavigationController

如果你想强制你的 MainViewController 成为呈现的 vc,你可以调用:

[self setDefinesPresentationContext:YES];

在呈现 MessageViewController 之前在您的 MainViewController 上。

编辑:以防其他人读到:definesPresentationContext 似乎有问题或文档有误。请参阅下面的评论和 Cocoa Builder

关于objective-c - 错误 'presentingViewController',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13118529/

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