Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 故事板和初始化_Ios_Uiwebview_Uistoryboard - Fatal编程技术网

Ios 故事板和初始化

Ios 故事板和初始化,ios,uiwebview,uistoryboard,Ios,Uiwebview,Uistoryboard,问题:使用故事板时如何执行自定义初始化 我读过几个与标题中的关键词相同的问题,但找不到任何答案。如果已经有人问过这个问题,或者这个问题太简单,请原谅:我刚刚开始开发iOS应用程序 目前我有一个应用程序,其: AppDelegate从源(当前为远程URL)读取两个需要在UIWebView实例中显示的URL 主控制器是一个带有两个选项卡的TabBarController,它们是UIWebView的实例 两个UIWebView都有方法(init和setter)来接收它们需要显示的文件的URL。这两个

问题:使用故事板时如何执行自定义初始化

我读过几个与标题中的关键词相同的问题,但找不到任何答案。如果已经有人问过这个问题,或者这个问题太简单,请原谅:我刚刚开始开发iOS应用程序

目前我有一个应用程序,其:

  • AppDelegate
    从源(当前为远程URL)读取两个需要在
    UIWebView
    实例中显示的URL
  • 主控制器是一个带有两个选项卡的
    TabBarController
    ,它们是
    UIWebView
    的实例
  • 两个
    UIWebView
    都有方法(init和setter)来接收它们需要显示的文件的URL。这两个
    UIWebView
    显示
    AppDelegate
    读取的URL
我试图使用故事板执行相同的操作,但不知道如何将内容的
URL
传递给两个
UIWebView
。我已经阅读了关于
initWithCoder
方法的答案,但无法理解如何传递参数


有没有人能理解我在(令人难以置信的困惑)问题中的意思,也能帮助我?

我认为正确的地方是你的ViewController。您应该在ViewController中创建UIWebView的出口,以便能够访问它们。然后,要将URL传递给他们,您可以使用:

- (void)loadRequest:(NSURLRequest *)request
我不明白您为什么远程读取AppDelegate中的URL,但如果需要,您可以从ViewController访问AppDelegate,如下所示:

[[UIApplication sharedApplication] delegate]

关于访问选项卡栏控制器中视图控制器的引用的一般问题

选项卡栏控制器有一个名为
viewControllers
的公共属性,它是选项卡栏控制器包含的视图控制器数组

可以像访问任何其他数组一样访问此数组的元素,但在本例中,它们是对所有视图控制器的引用

[tabBarController.viewControllers firstObject]; 

[tabBarController.viewControllers objectAtIndex:3];

for(UIViewController *vc in tabBarController.viewControllers) {
    if([@"MyFirstVC" isEqualToString:vc.title]) {
        // do stuff
    }
}

等等等等等等

你能更详细地解释一下你在做什么吗?为什么WebView不能自己处理从URL的读取?在选项卡栏控制器中是否始终有两个选项卡,并且它们始终是UIWebView?如何将URL传递给每个UIWebView?我并不是只有UIWebView,我试着为我的问题建立一个简单的例子。你从哪里得到URL?不要告诉我“来自应用程序代理”。告诉我应用程序代理从何处获取url。应用程序代理如何知道要传递到UIWebView的URL?在当前实现中,应用程序代理连接到远程URL并下载文本文件。解析后,将创建两个具有UIWebView视图的UIViewController,并将其放入TabBarController中,然后将其用作窗口的rootViewController。但是,我的一般问题是,在使用情节提要时,如何将参数传递给放置在TabBarController中的ViewController。我查阅了各种教程,但它们总是使用静态或无数据。是的。应用程序代理不应该做这些事情。他们与应用程序授权无关。在任何其他类中。它甚至可以是
NSObject
子类,但为了组织起见,它肯定需要从app委托中移出。但我并不完全相信视图控制器不能做到这一点。安东尼奥,这显然不明显。你一直很含糊。您还没有说服我视图控制器无法处理此问题。尽管如此,我的回答解释了如何在选项卡栏控制器中获取对视图控制器的引用。我同意@nhgrif-没有理由在AppDelegate中这样做。最好的方法可能是在加载ViewController时开始下载(从viewDidLoad),并在下载完成后上载UIWebView。同时,您应该通知用户,您的应用程序处于某个中间,例如显示一个UIActuviyDeaCurror视图。如果您担心的是在您的视图出现在屏幕上之前下载URL,那么在AppDelegate中很好地下载并不能保证这一点,因为这取决于网络。下载也可能失败。在这种情况下,您会怎么做?您可能希望处理显示错误消息的问题。