authentication - 如何为 Split View Controller 创建启动页面

标签 authentication swift uisplitviewcontroller splash-screen xcode6

(Xcode6-beta3、Swift、iPad、iOS8)

如何使用 Split View Controller 为 iPad 应用程序创建启动页面?

我已经尝试了将小箭头拖放到新 View Controller 的直接方法,并设置了一个按钮以在内部触摸时继续到 Split View Controller 。这会引发内存错误

我也试过简单地从 AppDelegate 中的 application 函数中注释掉以下代码,但我得到了一个 *** 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效参数不满足:[标识符长度] > 0”

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {


// Override point for customization after application launch.

//        let splitViewController = self.window!.rootViewController as UISplitViewController
//        let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as UINavigationController
//        splitViewController.delegate = navigationController.topViewController as DetailViewController

    return true
}

我什至断开了 Storyboard 中的 Master-Detail View ,因此所有应该加载的只是初始页面,但它仍然崩溃。

我太难了!感谢您的帮助。

最佳答案

您遇到的问题与 application:didFinishLaunchingWithOptions 中的代码有关:

在该代码中,模板访问 Storyboard 中定义的“第一个” View Controller 以获取 Split View Controller 并设置其委托(delegate)属性。如果您更改“小箭头”,您正在更改 UIWindow 的 rootViewController 属性,并且属于不同的 View Controller ,它会崩溃。

要解决这个问题,最好的办法是:

  • 按照描述创建 Storyboard(普通 ViewController 与原始 Split VC 的 segue)
  • 注释掉 application:didFinishLaunchingWithOptions 中的代码
  • 为新添加的场景创建一个 UIView Controller 子类
  • 在那个类中,在 segue 完成之前,插入这个修改后的代码版本来设置 Split View Controller 的委托(delegate)属性:

    let splitViewController = segue.destinationViewController as UISplitViewController
    
    let navigationController = splitViewController.viewControllers[splitViewController.viewControllers.count-1] as UINavigationController
    
    splitViewController.delegate = navigationController.topViewController as DetailViewController
    

工作项目 here

关于authentication - 如何为 Split View Controller 创建启动页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24806557/

相关文章:

swift - 根据登录的用户从 firebase 加载数据

ios - UISplitViewController:如何强制显示主 ViewController

wordpress - 如何使用Google Apps脚本获取Wordpress管理页面

php - laravel 微风多重身份验证 - 具有两种不同注册的管理员保护

swift - 当我搜索搜索 Controller 时,indexPath 不会随原始数组改变

ios - 如何使用 swift 在 firebase 中更新 token ?

c# - 如何使用 json 通过 SSL 在 IIS 中托管的 WCF 端点上使用基本身份验证?

php - 这个PHP登录功能安全吗?

ios - UISplitViewController 仅详细信息 inputAccessoryView

iOS 5 - 如何在一个窗口中组合不同类型的 View ?