可能导致一些轻微滞后的一件事是每次都从头开始重新加载相同的 viewController。
BProfileTableViewController * _profileViewController = [[UIStoryboard storyboardWithName:@"Profile" bundle:[NSBundle chatUIBundle]] instantiateInitialViewController];
UINavigationController * profileNavigationController = [[UINavigationController alloc] initWithRootViewController:profileViewController];
[self.navigationController presentViewController:profileNavigationController animated:YES completion:nil];
您可以在这里看到,如果这是在 tableView 上单击,那么每次应用程序需要再次创建 viewController。相反,如果我们只是重用视图,那么它会消除一些滞后。
在头文件中添加这个
BProfileTableViewController * _profileView;
然后模态视图加载代码更改为:
// Open the users profile
if (!_profileView) {
_profileView = [[UIStoryboard storyboardWithName:@"Profile" bundle:[NSBundle chatUIBundle]] instantiateInitialViewController];
}
UINavigationController * profileNavigationController = [[UINavigationController alloc] initWithRootViewController:_profileView];
[self.navigationController presentViewController:profileNavigationController animated:YES completion:nil];
这意味着我们只是重新加载视图而不是重新创建视图