将ViewControllers排队逐个推送

时间:2015-06-16 16:41:50

标签: ios objective-c swift uiviewcontroller uinavigationcontroller

我们如何"排队" ViewControllers要逐个推送?

我的应用程序检查"朋友请求的数量"我想一个一个地推到另一个。

 Check for Requests 
  

找到3个请求

 Push FriendRequestViewController
  

用户按OK

 Push Another FriendRequestViewController
  

用户按OK

 Push Another FriendRequestViewController
  

完成

我尝试过使用循环,但它会立即从currentViewController推送三个viewcontrollers。

for request in friendRequests
{
    let friendRequestViewController = FriendRequestViewController();
    friendRequestViewController.request = request;

   self.navigationController.presentViewController(friendRequestViewController);
}

有什么想法吗?谢谢你

1 个答案:

答案 0 :(得分:1)

我可以想到像声明协议

这样的东西
protocol FriendRequestControllerDelegate {
    func friendRequestContollerConfirmed(friendRequestController : FriendRequestViewController)
}

然后,在呈现好友请求的对象

//somewhere you have requestsEnumerator
func friendRequestContollerConfirmed(friendRequestController : FriendRequestViewController) {
    request = requestsEnumerator.nextObject();
    if request {
        let friendRequestViewController = FriendRequestViewController();
        friendRequestViewController.request = request;
        friendRequestViewController.delegate = self;

        self.navigationController.presentViewController(friendRequestViewController);
    }
}

首先提出好友请求的地方只需调用此函数

在FriendRequestController中,让自己成为你的目标Ok按钮。

func okButtonTapped() {
    if(self.delegate.respondsToSelector:Selector(friendRequestContollerConfirmed)) {
        self.delegate.friendRequestContollerConfirmed(self)
    }
}