首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在关闭OS X swift中以前的视图控制器的同时,从一个NS View控制器移动到另一个?

在关闭OS X Swift中以前的视图控制器的同时,从一个NS View控制器移动到另一个,可以通过以下步骤实现:

  1. 首先,确保你的应用程序使用了NSWindowController来管理窗口和视图控制器。这样可以方便地管理视图控制器的切换和关闭。
  2. 在你的NSWindowController子类中,创建一个方法来处理视图控制器的切换。例如,你可以创建一个名为switchToViewController(_ viewController: NSViewController)的方法。
  3. 在这个方法中,首先从当前窗口中获取当前的视图控制器。你可以使用contentViewController属性来获取当前的视图控制器。
  4. 调用当前视图控制器的removeFromParentViewController()方法将其从父视图控制器中移除。
  5. 创建一个新的NSViewController实例,用于显示你想要切换到的视图控制器。
  6. 将新的视图控制器添加到窗口的contentViewController属性中,以显示它。

下面是一个示例代码:

代码语言:txt
复制
class MyWindowController: NSWindowController {
    // ...

    func switchToViewController(_ viewController: NSViewController) {
        // Remove current view controller
        if let currentViewController = contentViewController {
            currentViewController.removeFromParentViewController()
        }

        // Add new view controller
        contentViewController = viewController
    }

    // ...
}

使用这个方法,你可以在关闭之前的视图控制器的同时,从一个NS View控制器移动到另一个。你可以根据需要在适当的时机调用switchToViewController(_:)方法来切换视图控制器。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS开发常用之网络

MGSwipeTableCell - 另一个常见于很多应用UI组件,苹果应该考虑在标准iOS SDK中加入一些类似的内容.Swipeable表格cell是这个pod最佳描述,也是最好。...DateRangePicker.swift - 可能是目前最好OS X日期选择器,高扩展性,界面风格看起来很舒服,不过注意,是OS X开发专用。...ZTPageController - 模仿网易新闻和其他新闻样式做菜单栏,栏中有各自控制器,其中有4展示样式'网易风格''搜狐风格''腾讯风格1''网易style2'。...更赞是额外附了详细开发教程如何在Swift制作Tinder-Like Koloda动画网页链接 .Yalantis出品动画程序款款精品。...Interpolate.swift - 手势驱动交互式转场动画框架库。这个很专业,且非常有意思。 INPopoverController - OS X可自由定制Popover视图

23.5K10

iOS 9 Storyboard 教程(二上)介绍Segue静态单元格(static cell)

介绍Segue 时候在storyboard添加更多控制器了.你激昂会创建一控制器,它允许用户向这个app添加玩家....---- 然后在Player控制器和导航控制器之间就会出现一箭头: 连接类型是segue(发音:赛格威),表示从一控制器另一个控制器过渡.到目前为止,你所看到storyboard 上连线都是一关系并且它们描述了一包含另一个...使用segue最屌就是,你不必写任何代码来present新控制器,也不必使用IBAction方法连接按钮.你所做只有从Bar Button Item 拖动到下一控制器,就足以创建一过渡了....然而新控制器并不是非常有用 – 你甚至不能关闭它返回到上一控制器.那是因为只有一方法–虽然它可以从Player控制器到这个新控制器,但是它却不能返回.....每一静态单元格都只有一实例,所以它完全是可以接受视图控制器里通过连线连接它们视图.

3.2K10

AVKit框架详细解析(二) —— 基于视频播放器画中画实现(一)

是时候学习如何在PiP中观看 RickTV! ---- Adding Background Modes 要在您应用程序启用画中画功能,您需要添加Background Modes功能。...打开 CategoryListViewController.swift 并滚动到标有注释 UICollectionViewDataSourceImplementation部分。...在 CustomPlayerViewController.swift ,滚动到标有 AVPictureInPictureDelegate 扩展。代理方法都带有空实现,以节省您输入时间!...: 1) 检查是否已经存在任何其他视图控制器。...也许您用户正在同时观看两视频,它们效果如何! 2) 如果有一展示控制器,在没有动画情况下关闭它,因为用户希望尽快让他们视频恢复正常并且对任何视图控制器动画不感兴趣。

2.6K10

iOS 9人机界面指南(四):UI元素(上) - 腾讯ISUX

API注释 想要了解如何在代码定义活动,请参考UI Activity Class Reference.想要了解如何将活动视图控制器整合到你应用,请参考Activity View Controller...下图是iOS模拟器翻页样式: ? API注释 想要了解如何在代码定义图片视图,请参考Page View Controllers. 页面视图控制器: 带滚动条页面视图控制器没有默认外观。...如果需要的话,设计一种自定义方式让用户可以以非线性方式来获取内容。页面视图控制器让用户从一页移动到前一页或者后一页,而并不支持用户在并不相邻页面间快速切换。...确保同一时间内屏幕上只有一浮出层。你不应该同时展示超过一浮出层(或者外观和行为跟浮出层很相似的模态视图)。尤其应当避免同时展示一连串或者一系列浮出层,从一浮出层中弹出另一个浮出层。...想要了解更多,请参考下文控件页面控件部分内容。 一般来说,一次只展示一滚动视图。由于用户滚动屏幕时动作幅度经常都会很大,如果在一屏同时存在不止一滚动视图,他们很容易会碰到另一个

10.1K51

用这些 iOS 技巧让你 APP 性能更佳

将启动页用作启动画面以显示品牌或添加加载动画是一常见错误。 Apple 所述,应将启动页设计为与应用第一页面相同: 「设计一与应用程序首页几乎相同启动页。...译者注:文段没有 Xcode,下文中提及为 Xcode 新建项目 为了让你应用感觉更快,你可以将启动页设计为与将向用户显示第一页面(视图控制器)类似。...假设 MyViewController 嵌入在 navigation 控制器,navigation 控制器嵌入在另一个 tabbar 控制器。...作为活动视图控制器并离开应用程序时,该路径将会被应用程序保存; 那么应用程序将记住以前视图层次结构即(Tab Bar Controller → Navigation Controller → My...(查看大图) 默认情况下,视图控制器生命周期方法( viewDidLoad)和 IBOutlet 相关方法是在主线程上执行。

3.2K30

iOS 9 Storyboard 教程(二下)

直到你segue他们,其他viewController才被实例化.当你关闭这些viewController时候,他们就立即被释放了.所以只有使用ViewController才存在内存....Game Picker控制器 在Add Player控制器里点一下Game那一行应该会打开一控制器,可以让用户从一列表里选择游戏.也就意味着你将会添加另一个tableViewController...现在让我们给这个新控制器一些数据来显示吧.在GamePickerViewController.swift,把一具有硬编码值games字符串数组添加到顶部: var games:[String]...现在运行app测试一下吧.点击一游戏名称,那一行就会显示一对号.点击另一个游戏名称,标记就会随至移动到那一行. ?....你添加代码将会在GamePickerViewController里定位到视图位置,然后设置selectedGame.设置selectedGame将会自动更新table view cell索引selectedGameIndex

2.2K10

Swift:静态工厂方法

无论是我们要根据APP品牌设置样式视图View),还是要配置视图控制器(View Controller),亦或是在测试创建存根值时,我们经常发现需要将设置代码放在某个地方。...视图控制器 View controllers 让我们继续查看控制器,这是使用子类非常常见另一种对象。...虽然我们可能无法完全摆脱视图控制器(或与此相关视图子类化,但是某些类型视图控制器可以从工厂方法受益。...尤其是在使用子视图控制器时,我们通常最终会得到一组视图控制器,它们只能在其中呈现特定状态,而不是在其中包含大量逻辑。对于那些视图控制器,将其设置移动到静态工厂API可能是一很好解决方案。...特别是如果与"Swift:将子视图控制器用作插件" 便捷API稍加修改版本结合使用,我们现在可以在执行异步操作时轻松添加预先配置加载视图控制器: class ProductListViewController

2.3K10

Ios常用第三方框架(二)

LxTabBarController - 改变了原生tabbar切换tab时生硬效果,并加入滑动切换手势(有和界面上其它手势发生冲突风险,可根据具体项目予以关闭),swift版本。...Sapporo - swift 单元格模型驱动集合视图管理器组件。又一超实用“轮子”。...DZNEmptyDataSet - DZNEmptyDataSet算是一很标准iOS内建方式,适合用来处理空table view和collection view。...MGSwipeTableCell - 另一个常见于很多应用UI组件,苹果应该考虑在标准iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod最佳描述,也是最好。...ZWSlideViewController - ZWSlideViewController多页滑动视图控制器(类似新闻类门户APP),可以用最简单继承方法使用,也可以不用继承,只用菜单或主视图页面,可实现丰富定制

7.6K60

iOS好用第三方侧边栏控件——MMDrawerController

二、MMDrawerController使用及相关设置         MMDrawerController使用十分简单,只需将中心视图控制器和左边栏视图控制器传入初始化方法即可完成MMDrawerController...MMOpenDrawerGestureModePanningCenterView = 1 << 2, //在中心视图控制器视图边缘20单位内拖动时可以打开侧边栏...点击导航栏时可以关闭侧边栏 MMCloseDrawerGestureModeTapNavigationBar = 1 << 4, //点击中心视图控制器视图时可以关闭侧边栏...参数为要切换侧边栏,animated设置是否有动画效果,completion会在切换完成后执行 //注意:如果在切换一关着侧边栏时,如果另一个侧边栏正在开启状态,则此方法不会有任何效果 -(void...2.同时展示左边栏与又边栏。 3.无法设置显示一最小抽屉宽度。 4.不能支持UITabBarController容器。 5.不能在中心视图控制器之上呈现侧边栏视图

2.7K20

添加多个屏幕-创建格线布局

您可以下载Final Xcode项目,以帮助您与自己进度进行比较。 查看控制器 在主故事板,让我们构建我们集合视图。首先,把视图控制器从对象库旁边我们视图控制器。...MultipleScreens02 转场 让我们将这两View Controller连接在一起。在第一图标的顶部,Control +从第一图标(黄色圆圈)拖动到第二图标的视图。...MultipleScreens04 委托 Delegate 首先,让我们为CollectionView创建一IBOutlet,Control +从Collection View ****拖动到swift...我们在图像下面插入一标签。文本是iPhone X并将底部约束为0并将容器水平中心约束。在“ 属性”检查器,将“滚动方向”更改为“ 水平”并取消选中“ 显示”指示器。...DialogViewController协议 我们需要设置另一个协议,以便能够通过segue 将委托发送给View Controller。

2.8K40

SwiftUI-开发iOS项目

Info.plist — 属性列表文件,包含项目的很多配置,App名字、版本等 Preview Content — 这是一文件夹,里面包含一 Preview Assets.xcassets 启动流程...SceneDelegate,它 scene(_:willConnectTo:options:)将会被调用,设置window视图控制器 在初始化根视图控制器时会初始化ContentViewView...,现在一继承自 View 结构体搞定 在ContentView内部,有一 body ,返回一 Swift5.1 中新增不透明返回类型,意思就是返回某种 View,但是 body 不需要关心具体内容...注意: body 不能返回很多 View 或不返回任何 View ,此时Swift编译器都会报错,所以务必记住 body 必须始终返回一 View 在 body Text("Hello...SwiftUI"),表示创建了文本Hello SwiftUI标签 最后结构体 ContentView_Previews,与ContentView类似,它专门用于在Xcode显示视图预览。

4.7K10

【Java 进阶篇】MVC 模式

在 Java JSP 控制器可以是一 Java Servlet,它接受来自客户端请求,调用模型方法来执行业务逻辑,然后将结果发送给视图进行呈现。...您可以单独测试模型、视图控制器,以确保它们按预期工作。 提高协作:多个开发人员可以同时工作,每个人负责一或多个组件。这有助于提高开发效率。...Servlet 可以使用请求和响应对象来接受用户输入并将模型数据传递给 JSP 视图,以便呈现。同时,Servlet 还可以根据用户输入更新模型状态。...当您添加待办事项时,控制器将负责将其保存到模型,并将更新后列表传递给视图,然后视图会显示新待办事项。 这是一简单示例,演示了如何在 Java JSP 中使用 MVC 模式。...希望本教程能帮助您更好地理解 Java JSP MVC 模式,以及如何在应用程序应用它。通过模型、视图控制器合理分工,您可以创建更易于维护和扩展应用程序,提供出色用户体验。

32330

iOS13 Scene Delegate

在上面的代码,我们可以手动地设置了视图控制器堆栈,稍后会进行详细介绍。...,包括要创建场景类型,用于管理场景代理对象以及包含要显示初始视图控制器StoryBoard。...application(_:didDiscardSceneSessions:) : 在分屏关闭其中一或多个scene时候回调用,可以在该函数销毁场景所使用资源。...接着为SwiftUI项目创建了ContentView实例,并通过使用UIHostingController将其添加为根视图控制器。 该控制器用于将基于SwiftUI视图显示在屏幕上。...scene(_: willConnectTo: options: )函数内,创建一SwiftUI视图,将其放置在托管控制器,然后将控制器分配给window属性视图控制器,并将该窗口放置在应用程序

5.1K20

一步一步,开始上手Mac 开发(一)

周末闲暇,在网上看到一篇Mac开发教程How to Make a Simple Mac App on OS X 10.7 Tutorial: Part 1/3,鉴于Mac开发资料较少,翻译整理,也算是自己练习过程记录...使用initWithNibName:方法从nib(就是我们创建控制器Xib)文件创建了一view Controller。 2....将控制view 添加到主窗口容器视图(contentView)。 3. 设置控制器view大小与主窗口相等。...到此,与iOS开发比较,你会发现一些不同,在iOS需要设置窗口控制器(rootViewController),但在OSX并不存在根控制器,因此需要将view添加到窗口contentview。.../.m , MasterViewController.h/.m/.xib 和 MainMenu.xib)直接拖动到这个新组 同样方法,我们在ScrayBugsMac组再创建一Model组,用来放置后面需要用到数据模型

4K40

iOS页面切换几种方式

从一视图控制器切换到另一个视图控制器几种方式 模态(modal)画面显示方式 //显示模态画面 [self presentModalViewController: ... animated:...2控制器属性:BViewController,CViewController 点击按钮之后在B与C视图之间切换–多用于在一页面中有时要显示或隐藏某个View [self.view insertSubview...: 加载新页面 atIndex: n ]; 3.UITabBarController实现并列画面跳转 //将5ViewController实例放入TabBarviewControllers...; self.window.rootViewController = self.tabBarController; //将根控制器视图加到应用程序主窗口 [self.window...addSubview: self.tabBarController.view]; 4.UINavigationController实现多层画面跳转,在导航控制器,载入有层级关系界面 [self.navigationController

2.4K10

Swift中使用工厂进行依赖注入

这还不算太糟,因为我们只有一依赖关系。然而,我们列表视图很可能不是只有一层,这在某种程度上需要我们实现导航到另一个视图控制器。...为了启用回复功能,我们实现了一MessageSender类,在创建新视图控制器时,我们将其注入到新视图控制器,像这样: override func tableView(_ tableView:...我们将首先为我们工厂定义一协议,这将使我们能够轻松地创建我们应用程序需要任何视图控制器,而不需要实际了解其依赖性或初始化器。...由于我们已经将所有的工厂定义为协议,我们可以通过实现任何给定工厂协议特定测试版本,在测试轻松地模拟它们。我将在未来博文中写更多关于模拟和如何在测试充分利用依赖注入内容。 你怎么看?...你以前使用过像这样解决方案吗,或者你会尝试一下吗? 感谢您阅读 译自 John Sundell Dependency injection using factories in Swift

79120

你可能需要为你 APP 适配 iOS 11

属性,在storyboard也支持这个设置,对于HUDimage需要设置另一个iOS11新增属性:largeContentSizeImage,关于这部分更详细讨论,可以参考 WWDC2017 Session...需要注意是,你constraints需要在view内部设置,所以如果你有一自定义标题视图,你需要确保任何约束只依赖于标题视图及其任何子视图。当你使用自动布局,系统假设你知道你在做什么。...UIScrollView and UITableView新特性 Scroll Views 如果有一些文本位于UI滚动视图内部,并包含在导航控制器,现在一般navigationContollers会传入一...属性值是从一insets偏移量 } 下图清晰展示了这两种参照值区别: ?...} NS_SWIFT_NAME(UIContextualAction.Style) 滑动操作这里还有一需要注意是,当cell高度较小时,会只显示image,不显示title,当cell高度够大时,

1.6K60
领券