gpt4 book ai didi

objective-c - 在 OS X 中使用 NSViewController 在 View 之间切换

转载 作者:行者123 更新时间:2023-12-03 09:22:51 25 4
gpt4 key购买 nike

如何使用 View Controller 在多个 View 之间切换(借助IBAction)?

这是我到目前为止编写的代码:

在接口(interface)文件中我做了一个IBAction:

-(IBAction)Next;

在实现文件中我写了这样的内容:

- (IBAction)Next
{
SecondPopovercontrol *second = [[SecondPopovercontrol alloc] initWithNibName:nil bundle:nil];
[self presentingViewController:second animated: YES completion:NULL]; // This is the step I am facing issues with
}

我无法运行它 - 2 个 View Controller 的名称是:WOMPopoverControllerSecondPopovercontrol

错误是:

“WOMPopoverController 没有可见的 @interface 声明呈现 Viewcontroller:animated:completion 的选择器”

我是 StackExchange 的新手,因此如果我的问题有任何不一致之处,请告诉我。并且,请指导我如何解决这个问题。

谢谢

最佳答案

presentingViewController 是 UIViewController 的一个属性。它持有一个指向呈现当前 viewController 的 viewController 的指针(如果当前 viewController 不是由呈现的 viewController 呈现的,则为 nil)。

您想要做的是向 self 发送一条 presentViewController:animated:completion 消息:

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

(这是“现在”,而不是“呈现”)

当呈现 second 时,它的 presentingViewController 属性将设置为该 self,并且 self 的 presentedViewController 属性将设置为 第二个

编辑
正如 Jef 所指出的,我错误地认为你正在处理 iOS。在 OSX 上,方法类似。 NSViewController 有一个presentingViewController 属性和一个presentedViewControllers 数组。您可以使用的各种演示方法有所不同:

– presentViewController:animator:
– presentViewController:asPopoverRelativeToRect:ofView:preferredEdge:behavior:
– presentViewControllerAsModalWindow:
– presentViewControllerAsSheet:

无论如何,我认为你需要考虑 NSViewController documentation仔细确保您在正确的平台上使用正确的方法(您的错误方法似乎源自 iOS,而不是 OSX)。

编辑 2
我做了一个small demo app显示 OSX 上 NSViewController 的各种呈现行为,包括一个非常基本的自定义动画对象。

关于objective-c - 在 OS X 中使用 NSViewController 在 View 之间切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28076959/

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