如何无缝地解除模态并推送新的ViewController?

时间:2015-05-08 20:52:41

标签: ios objective-c ios8 modalviewcontroller

在我们的聊天应用程序中,我们有一个活动对话列表(ChatsVC),它有一个显示模态的按钮(CreateChatsVC)。此模式允许用户创建新会话。

当用户选择与哪些用户聊天时,我们希望模式(CreateChatsVC)被忽略,并且会话视图(ConversationVC)被推送到底层(ChatsVC)而不会在转换中实际看到底层的ChatsVC。

到目前为止,我们在CreateChatVC中所做的是:

[rootPane dismissViewControllerAnimated:NO completion:^{}];
[rootPane.navigationController pushViewController:conversationVC animated:NO];

然而我们注意到在iOS 8上这会导致一些视觉瑕疵,即当用户从ConversationVC回到ChatsVC时,桌子向下滚动一半,但是一旦你触摸屏幕,它就会立即回到顶部。将我们的转换代码更改为以下内容后:

[rootPane dismissViewControllerAnimated:NO completion:^{
    [rootPane.navigationController pushViewController:conversationVC animated:NO];
}];

这些视觉文物消失了,但现在有一瞬间用户可以看到底层的ChatsVC,这是不可取的。

是否有人建议更好地替换此转换,或建议为什么此tableView滚动问题仅出现在iOS8上?

示例用户流程为:

推ChatsVC - >单击以显示CreateChatsVC模式 - >选择要与之聊天的用户 - >关闭CreateChatsVC模式并立即推送ConversationVC

提前致谢

0 个答案:

没有答案