草庐IT

swift - UIPageViewController阶段

coder 2023-09-11 原文

我读到:

为了创建页面内容 View Controller ,我们添加了一个辅助方法。 在这个方法中,在某一点,有这一行:

if let pageContentViewController = storyboard?.instantiateViewControllerWithIdentifier("PageContentViewController") as? PageContentViewController { ....`                                                      }                   `

我的问题是:

为什么之前没有声明“storyboard”,但现在出现在上面一行?

最佳答案

有时为了使项目更容易,项目是跨各种 Storyboard构建的。

如果你只有一个 Storyboard,你知道要在这个只有一个 Storyboard上访问其他 View Controller ,你会说:

self?.instantiateViewController....
// Here self refers to itself.. the only storyboard you havve

但是,在您的代码中,正在尝试跨不同的 Storyboard访问 View Controller 。这个不同的 Storyboard会有一个 id(你在事件检查器中设置)

//This is how you access a view controller in a different storyboard
let storyboard = UIStoryboard(name: "yourStoryBoardID", bundle: nil)
            let controller = storyboard.instantiateViewControllerWithIdentifier("yourViewControllerID") as UIViewController
            self.presentViewController(controller, animated: true, completion: nil)

此链接:“http://www.newventuresoftware.com/blog/organizing-xcode-projects-using-multiple-storyboards”对于提供对多个 Storyboard的引用非常有帮助。

明确一点:这与页面 View Controller 无关,这是因为我们使用的是多个 Storyboard。 另外,如果您能提供更多代码或引用资料就更好了。

关于swift - UIPageViewController阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37461152/

有关swift - UIPageViewController阶段的更多相关文章

  1. elasticsearch源码关于TransportSearchAction【阶段三】 - 2

    1.回顾.TransportServicepublicclassTransportServiceextendsAbstractLifecycleComponentTransportService:方法:1publicfinalTextendsTransportResponse>voidsendRequest(finalTransport.Connectionconnection,finalStringaction,finalTransportRequestrequest,finalTransportRequestOptionsoptions,TransportResponseHandlerT>

  2. ruby - 在 Xcode 运行脚本构建阶段使用 rvm 强制指定 Ruby - 2

    在Xcode之外,我使用特定版本的Ruby,使用RVM管理多个Ruby安装。Apple的命令行开发工具将Ruby安装在/usr/bin/ruby并且版本为1.8.7。我通过RVM使用1.9.3。有没有办法强制Xcode在运行其运行脚本构建阶段时使用我的1.9.3安装?我已经尝试将Shell路径设置为我的特定Ruby的完整路径,但这似乎没有什么不同,我的意思是我在1.9.3中安装的特定Gems不可用/在Xcode中运行时对脚本可见。如果我在命令行上通过xcodebuild运行我的项目,运行脚本阶段会使用我的特定Ruby,因为它是从我的shell环境中运行的(即使项目文件中的Shell路径

  3. ruby - 有什么办法可以延迟资源的属性解析到 "execute"阶段? - 2

    我有两个LWRP。第一个涉及创建磁盘卷、对其进行格式化并将其安装到虚拟机上,我们将此资源称为cloud_volume。第二个资源(它的作用并不重要)需要新格式化卷的UUID,这是必需的属性,我们将此资源称为foobar。资源cloud_volume和foobar被用在类似下面的配方中。volumes.eachdo|mount_point,volume|cloud_volume"#{mount_point}"dosizevolume['size']labelvolume['label']action[:create,:initialize]endfoobar"#{mount_point}

  4. ruby-on-rails - 使用 Capistrano 3 设置默认阶段 - 2

    有没有办法在Capistrano3中设置默认阶段?我试过将set:stage,:production放在deploy.rb中,但这没有用,它给出了错误:Stagenotset,pleasecallsomethingsuchas`capproductiondeploy`,whereproductionisastageyouhavedefined我现在只有一个阶段,所以我希望能够只运行capdeploy并让它在默认情况下执行。 最佳答案 Capistranov3在某种程度上是Rake的包装器,因此您需要意识到真正发生的是producti

  5. javascript - AngularJS:如何在配置阶段使用 $q 进行单元测试? - 2

    我有一个Angular服务负责加载config.json文件。我想在我的运行阶段调用它,所以我在我的$rootContext中设置了那个json,因此,它在未来对每个人都可用。基本上,这就是我所拥有的:angular.module('app.core',[]).run(function(CoreRun){CoreRun.run();});我的CoreRun服务在哪里:angular.module('app.core').factory('CoreRun',CoreRun);CoreRun.$inject=['$rootScope','config'];functionCoreRun($

  6. javascript - 如何告诉 eslint 允许分阶段的 ECMA-Script 动态导入 - 2

    我想使用现在的“Stage-3”提案import()。如果我用ESLint整理我的代码,它会提示:Parsingerror:'import'and'export'mayonlyappearatthetoplevel这对于import的静态形式是正确的,但对于新的动态形式是不正确的。我找不到让ESLint允许这样做的正确选项。有人可以给我提示吗? 最佳答案 Gyandeep当然是对的。这不是规则的问题,而是解析器的问题(毕竟这就是解析错误的意思……)。所以我现在将babel-eslint与以下.eslintrc(摘录)一起使用:{"p

  7. javascript - NodeJS 事件循环中的轮询阶段 - 2

    我正在通过Nodedocs对于事件循环,我感到非常困惑。它说——timers:thisphaseexecutescallbacksscheduledbysetTimeout()andsetInterval().I/Ocallbacks:executesalmostallcallbackswiththeexceptionofclosecallbacks,theonesscheduledbytimers,andsetImmediate().idle,prepare:onlyusedinternally.poll:retrievenewI/Oevents;nodewillblockherew

  8. javascript - Array.sort 的这个中间阶段发生了什么? - 2

    在深入研究数组方法时,我决定看一下Array.sort方法中涉及的步骤。看一下这段代码,用于反转数组的顺序:letarr=[];for(leti=1;i{console.log(arr);console.log(`Comparing${value1}:${value2}`);returnvalue2-value1;});console.log(arr);我得到这个输出:[1,2,3,4,5]Comparing1:2[2,1,3,4,5]Comparing1:3[2,1,1,4,5]Comparing2:3[3,2,1,4,5]Comparing1:4[3,2,1,1,5]Compari

  9. swift - 将 json 编码时间转换为 nsdate - 2

    当我将time.Now()编码到JSON对象时,它给出的结果为"2009-11-10T23:00:00Z"但打印时间。现在给出2009-11-1023:00:00+0000UTC。他们为什么不同。什么是T和Z。另外,如何根据this将其转换为swiftNSDate对象?表? 最佳答案 这些值的含义无关紧要,它们是该格式(ISO8601)的一部分。有几种方法可以解决这个问题。一种是为时间或您的结构定义自定义MarshalJSON()方法并使用它来格式化日期,另一种是首先在您的结构中将其表示为字符串,以便当默认实现执行你得到你正在寻找的

  10. objective-c - 为什么 Swift 函数定义语法是多余的? - 2

    在C/C++/Java/Go中,我们使用,来分隔参数:(aint,bint)在ObjectiveC中,我们使用:来表示参数::(int)a:(int)b在Swift中,我们必须同时使用:和,:(a:int,b:int)是否需要冗余? 最佳答案 Swift可能有外部和内部参数名称:(externalinternal:Int)如果没有独特的分隔符,会产生很多歧义。 关于objective-c-为什么Swift函数定义语法是多余的?,我们在StackOverflow上找到一个类似的问题:

随机推荐