iOS MVC - 如果模型需要用户提供其他信息,该怎么办?

时间:2018-02-28 17:44:13

标签: ios model-view-controller remote-notifications

在我的iOS应用程序中,我希望用户能够确认他是否已经接收远程通知,然后执行注册(在iOS 10之前使用registerUserNotificationSettings)或者iOS 10+的requestAuthorizationWithOptions / registerUserNotificationSettings。然后,模型会在请求更多数据时将设备令牌发送回我的服务器。

我试图使用"清洁" MVC模式。当模型需要用户提供其他信息时,以下是否被视为最佳实践?

  1. 模型确定已满足远程通知的条件,并确定用户尚未确认需要远程通知。
  2. 模型调用视图控制器上的方法(作为委托),要求用户确认是否需要远程通知。
  3. 由于确认过程是异步发生的,因此视图控制器会在模型上调用带有结果的方法。
  4. 如果用户确认,模型会注册用户并处理结果。这将涉及模型和app委托之间的交互,iOS可以向用户显示自己的确认模式,这是可以的。
  5. 另一种方法是模型在步骤2中将完成处理程序传递给视图控制器,当获得结果时,视图控制器将传递并最终执行。 (在iOS 9之前使用UIAlertView有点棘手,但使用适用于iOS 9 +的UIAlertController非常简单。)

    感谢您的任何想法!

0 个答案:

没有答案