【问题标题】:first mac app - push viewcontroller第一个 Mac 应用程序 - 推送视图控制器
【发布时间】:2011-07-20 20:32:35
【问题描述】:

我有一个问题,我做了一些 iphone 应用程序,现在我想做一个小的 mac 应用程序。

从一个干净的应用程序中,我在 MainMenu xib 上添加了一个按钮,而不是通过一个操作将 NSViewController 添加到 MainMenu(来自 IB)。 我用一个 nib 文件和一个按钮创建了一个新的 NSViewController (FirstViewController)。 现在我只想创建一个从 MainMenu 推送 FirstController 的函数和一个从 FirstController 推送 MainMenu 的简单函数。

类似的东西

ViewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:[NSBundle mainBundle]];
[self.navigationController pushViewController: ViewController animated:YES];

我该怎么做???

【问题讨论】:

    标签: cocoa macos nsviewcontroller


    【解决方案1】:

    我认为您正在尝试将 iOS 风格的界面引入 MacOS X,但这在很多情况下都行不通。 MacOS X 的用户界面与 iOS 非常不同。

    iOS 应用程序仅限于一个(通常很小)窗口,用户通常一次只做一件事。导航界面标准化了用户向下钻取任务的不同部分的方式,以便旅程是可预测的。界面非常模态,因为用户不断在应用程序的不同部分之间导航,并且用户操作通常与应用程序的活动部分相关联。

    另一方面,桌面有足够的屏幕空间并允许多个窗口。桌面应用程序应该是modeless - 用户不会在应用程序中导航,但会看到摆在他或她面前的整个内容。尽可能让用户能够随时执行任何操作。

    由于这些原因,Cocoa 中没有类似 Cocoa Touch 的 UINavigationController 的导航控制器。如果您能告诉我们更多有关您的两个视图控制器管理的任务的信息,也许这里有人会帮助您想办法将其更好地转化为预期的桌面体验。

    【讨论】:

    • 非常感谢,有些事情我明白了。我的问题很简单,两个控制器都是空的,我只想从一个控制器传递到第二个控制器,反之亦然...:)
    【解决方案2】:

    Hereapple 讨论了将 iOS 迁移到 OS X 的策略。您的场景也在此处讨论:

    例如,AppKit 使用 NSBrowser 类来管理 分层信息;相比之下,iOS 应用会使用导航 控制器。

    可以看到 NSBrowser 正在使用here,输出如附图所示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-23
      相关资源
      最近更新 更多