2016-08-15 79 views
1
let dialog: FriendCheckInDialogViewController = storyboard?.instantiateViewControllerWithIdentifier("FriendCheckInDialogViewController") as! FriendCheckInDialogViewController 
dialog.modalPresentationStyle = UIModalPresentationStyle.OverCurrentContext 

如果我使用透明的ViewController的工作,但不是pushViewController

self.navigationController?.presentViewController(dialog, animated: false, completion: nil) 

然后透明的工作。但popToRootViewControllerAnimated不,所以我不能回去。

如果我使用

self.navigationController?.pushViewController(dialog, animated: false) 

然后背景变成黑色,而不是透明的。但popToRootViewControllerAnimated的作品,所以我可以回去。

我该怎么办?

+2

你想呈现你的视图控制器模态或导航堆栈的一部分?如果你使用presentViewController,那么它是模态的,你需要使用dismissViewController。如果使用导航控制器和堆栈,那么你可以在前面的视图控制器的顶部呈现透明 – Paulw11

+1

@ Paulw11酷,工作,谢谢你。让它成为答案。新的iOS开发,所以没有找到这种方法,容易 –

回答

1

您似乎在混合不同的演示文稿样式。

如果您使用presentViewController以模态方式呈现视图控制器,那么您可以使用dismissViewController将其解除关闭。在这种情况下,您可以在当前视图控制器上以模态方式呈现视图控制器。

如果您将视图控制器推到导航控制器堆栈上,那么您可以将该视图控制器弹回,但推送的视图控制器会替换当前的视图控制器,因此不能将其暴露在“下方”。

+0

我猜,你可以使用“截图”的方法,如果你真的很想...... – Fattie

相关问题