当我点击我的tableview时,会执行此代码:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil];
ViewController *vc =[storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
vc.currentCategory = indexPath.row ;
[self presentViewController: vc animated:YES completion:nil];
}
似乎所有东西都加载了,它在新的viewcontroller中的断点处中断。但它没有得到呈现。如果我第二次点击它会执行代码,但它会显示视图控制器。如果我去动画:不,一切都在第一次点击,但没有动画:是。什么想法可能是错的?
答案 0 :(得分:2)
我遇到了完全相同的问题,结果证明是一个线程问题。您需要在以下内容中调用presentViewController:
dispatch_async(dispatch_get_main_queue(), {
self.presentViewController(controller, animated: true, completion: nil)
})
请记住,我的回答是使用Swift,它应该是一个简单的转换回objective-c,但我很确定你遇到了像我一样的线程问题。希望这有助于人们。
答案 1 :(得分:1)
放手一搏:
UIView *containerView = self.view.window;
[containerView.layer addAnimation:NO forKey:nil];
UIViewController * otherViewCon = [self.storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
[self presentViewController:otherViewCon animated:NO completion:nil];