在 App Delegate 中管理两个故事板

2023-12-03

我决定避免使用自动布局,因此我目前正在尝试实现代码,以使我的应用程序根据屏幕尺寸管理两个不同的故事板。

我一直在关注这个教程:http://pinkstone.co.uk/how-to-load-a- Different-storyboard-depending-on-screen-size-in-ios/

我在尝试将 Objective C 代码转换为 Swift 时遇到问题。

这是我的 AppDelegate 中当前的代码:

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

func grabStoryboard() -> UIStoryboard {
    var storyboard = UIStoryboard()
    var height = UIScreen.mainScreen().bounds.size.height

    if height == 480 {
        storyboard = UIStoryboard(name: "Main3.5", bundle: nil)
    } else {
        storyboard = UIStoryboard(name: "Main", bundle: nil)
    }
    return storyboard
}

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {
    // Override point for customization after application launch.   

    var storyboard: UIStoryboard = self.grabStoryboard()

    self.window?.rootViewController.storyboard.instantiateInitialViewController()
    self.window?.makeKeyAndVisible()

    return true
}

该应用程序运行,并且没有错误,但是无论我在 3.5 英寸设备还是 4 英寸设备上运行该应用程序,我都只得到 4 英寸故事板。

我哪里出错了?


问题在于:

self.window?.rootViewController.storyboard.instantiateInitialViewController()

你应该使用这个:

self.window?.rootViewController = storyboard.instantiateInitialViewController()

编辑:我已经删除了as UIViewController因为不再需要它了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 App Delegate 中管理两个故事板 的相关文章

  • 免费套餐于今天 11 月 28 日结束,Heroku 网站于今天删除 [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我的 Heroku 网站已被删除 因为我没有切换到付费计划 我刚刚切换到 Eco Dyno 我的网站会自动恢复还是需要重建 注意 使用 He
  • 使用 CommonCrypto 的 Swift AES 加密

    我正在开发一个 iOS 应用程序代码7 1 with 斯威夫特2 1我正在尝试进行简单的加密AES 128 位 and PKCS7填充使用通用加密库 该代码有效 但每次我尝试投射NSData反对NSString然后对于 String 我得到
  • Swift 中的 id 相当于什么?

    我有两个这样的代表 protocol MyFirstDelegate func change value int protocol MySecondDelegate weak var delegate MyFirstDelegate 这些协
  • 无效的 Swift 支持 - 文件位置不正确

    我一直在尝试将新版本上传到 iTunes Connect 来更新应用程序 我第一次使用 xCode 6 但收到了一封来自 Apple 的电子邮件 内容如下 亲爱的开发者 我们发现您最近交付的 应用程序 存在一个或多个问题 要处理您的交货 必
  • Swift MKAnnotationView 旋转

    我试图在坐标更改时旋转我的自定义注释 我可以成功地更改坐标 但尝试了一切方法来旋转它 但没有成功 基本思想是有一个平面并通过旋转设置其方向 这是我的代码 import UIKit import MapKit class CustomPoin
  • 将 swift 结构体转换为 json 字符串

    我正在尝试将我的 swift 结构转换为 json 格式 类似这样的问题似乎有不少 但到目前为止 没有一个解决方案对我有用 这是我的结构 struct Rec Codable var name String var time Int var
  • 将 3D 对象添加到 ARGeoAnchor

    如果这个问题不太好 请原谅我 我在 Apple 的 ARGeoAnchor 文档中遇到了一些障碍 目前 ARGeoAnchor 仅在 AR 场景视图中显示一个蓝点 我正在尝试显示任何 3D 渲染或对象 My code let coordin
  • 是否有可能在 Swift 中捕获 NSInternalInconsistencyException ?

    是否有可能在 Swift 中捕获 NSInternalInconsistencyException 如果是的话 那怎么办呢 例如可以通过以下方式完成https github com williamFalcon SwiftTryCatch h
  • 如何显示启动图像

    我是 iOS 新手 我的 Xcode 版本是 7 2 1 我尝试使用 Swift 在 iOS9 上运行 我的问题是我对如何创建启动屏幕图像感到非常困惑 我发现有很多方法可以为不同版本的 iOS 创建启动屏幕图像 有人可以向我解释一下如何设置
  • 无法更改 UITabBarItem.image:CSI 中不支持的像素格式

    我试图通过代码更改选项卡栏中显示的图像 我目前正在使用 Swift 和 Xcode 6 beta 3 我导入了 tabBarImage png 并 电子邮件受保护 cdn cgi l email protection在 Images xca
  • CoreBluetooth 功能无法从 Singleton 运行

    所以我目前在 iPad 和 iPhone 之间建立了蓝牙连接 我已经在中创建了我的测试代码ViewController一切正常 现在我把它移到了 2 个经理类 第一个是CBCentralManager和一个用于CBPeripheralMan
  • 如何在 Swift 3 中记录函数闭包参数的参数?

    在 Xcode 8 beta 和 Swift 3 中 当您有一个采用闭包作为参数的方法时 例如 func foo bar String gt Void bar Hello world 如何记录闭包所采用的参数 例如 如果我这样写 Calls
  • 身份验证后如何退出 Google

    所以我的应用程序可以选择使用 Google 登录 单击 Google 提供的按钮后 将打开一个 Web 视图并让用户输入其凭据 允许应用程序访问其信息后 应用程序将用户登录并将 SignInViewController 更改为 TabBar
  • 缩进 UILabel 的第二行(swift)

    var testLabel UILabel frame CGRectMake 8 0 tableView frame width 8 100 let testDesc dsfdddfdsfdsfsdfdsfdsfdsfdsfdsfsdfds
  • 在 SwiftUI 中,如何在 UIView 内部或作为 UIView 使用 UIHostingController?

    另一个问题标题可以是 如何将 UIHostingController 的视图添加为 UIView 的子视图 我正在创建一个新的 UI 组件 并且很乐意尝试 SwiftUI 下图是当前的视图结构 UIView 是我现在正在使用的 右上 Swi
  • NSURLSessionDataDelegate方法didReceiveData等没有被调用

    我遇到的问题是 didReceiveData 和 didCompleteWithError 未被调用 这是我的代码 class LoginViewController UIViewController NSURLSessionDataDel
  • GCDAsyncSocket 多个连接不会接受来自多个套接字的数据

    我正在尝试编写一个同时连接到多个套接字的应用程序 当连接新套接字时 我在从旧套接字接收数据时遇到问题 最主要的是委托没有被先前连接的套接字激活 这是我的总体计划 var struct serverlist Create array for
  • 关闭模态视图控制器时如何保持呈现视图控制器的方向?

    我正在开发这个应用程序 我需要所有视图控制器 但只有一个是纵向的 单一视图控制器很特别 我需要它能够旋转到手机所在的任何方向 为此 我以模态方式呈现它 未嵌入导航控制器中 所以 例如 我的结构是这样的 window Portrait roo
  • PreferredStatusBarStyle 不起作用[重复]

    这个问题在这里已经有答案了 我以前用过setStatusBarStyle在我的项目中 它工作正常 但它已被弃用 所以我使用preferredStatusBarStyle 那不起作用 知道我已经 调用方法setNeedsStatusBarAp
  • Spotify:使用网络 API 登录不接受重定向 URL

    我正在尝试使用 Web API 登录 Spotify 因为我不需要会话对象 在我的授权方法中 我需要传入重定向 url 但 GET 请求中不接受 iOS 重定向 url 的格式化方式 func authorize create the ur

随机推荐