我正在创建一个应用程序,该应用程序实现了Facebook和Twitter服务。在我的视图中,我有一个按钮,可以切换在Facebook/Twitter上分享或不分享。如果没有连接到Facebook/Twitter,则按钮将显示“连接到”。
当我单击该按钮时,我的控制器中的方法(而不是我的视图控制器)将尝试切换该值,因为此控制器跟踪我的应用程序的状态。当我未连接到社交网络时,我的控制器会注意到并调用正确的服务。该服务将启动一个Web视图以提供用户凭据。
现在我的问题是:
当我在我的服务中需要通过Web视图提供凭据时,我需要传递一个视图控制器来处理演示。如何在这里提供视图控制器?
我发现的方法有以下几种: 1. 调用appdelegate单例并获取当前演示的视图控制器(我认为这很不好,但如果我错了,请纠正我)。 2. 由于我在appdelegate.didFinishLaunchingWithOptions中将我的服务注入到我的控制器中,因此我可以注入应用程序委托的UIWindow,并询问当前呈现的视图控制器(与第一种方法几乎相同)。 3. 创建一个由视图控制器实现的协议。服务具有与该协议相等的属性,并在我的app delegate中将视图控制器注入服务中。 4. 在您的控制器中有一个将作为presentingviewcontroller的属性,并让您的控制器实现第3种方法协议。当该协议的函数被触发时,控制器将处理它并使用presentingviewcontroller属性进行Web视图。我只需要在appdelegate中将一个视图控制器注入我的控制器即可。 5. 不要在该服务中实现任何与视图相关的内容。
我目前的实现是第3种方法。
如果有什么不清楚的地方,请告诉我。
非常感谢您提供的任何帮助!
当我单击该按钮时,我的控制器中的方法(而不是我的视图控制器)将尝试切换该值,因为此控制器跟踪我的应用程序的状态。当我未连接到社交网络时,我的控制器会注意到并调用正确的服务。该服务将启动一个Web视图以提供用户凭据。
现在我的问题是:
当我在我的服务中需要通过Web视图提供凭据时,我需要传递一个视图控制器来处理演示。如何在这里提供视图控制器?
我发现的方法有以下几种: 1. 调用appdelegate单例并获取当前演示的视图控制器(我认为这很不好,但如果我错了,请纠正我)。 2. 由于我在appdelegate.didFinishLaunchingWithOptions中将我的服务注入到我的控制器中,因此我可以注入应用程序委托的UIWindow,并询问当前呈现的视图控制器(与第一种方法几乎相同)。 3. 创建一个由视图控制器实现的协议。服务具有与该协议相等的属性,并在我的app delegate中将视图控制器注入服务中。 4. 在您的控制器中有一个将作为presentingviewcontroller的属性,并让您的控制器实现第3种方法协议。当该协议的函数被触发时,控制器将处理它并使用presentingviewcontroller属性进行Web视图。我只需要在appdelegate中将一个视图控制器注入我的控制器即可。 5. 不要在该服务中实现任何与视图相关的内容。
我目前的实现是第3种方法。
如果有什么不清楚的地方,请告诉我。
非常感谢您提供的任何帮助!