在推送新UIVIew时禁用所有交互UIViewcontroler

时间:2013-07-19 06:28:06

标签: iphone ios objective-c uiview uiviewcontroller

我在这里UIView Popup like UIAlertView使用此代码来创建UIVIew相同的UIalertView。 我从UIViewController推送新的UIViewAlert,但我希望UIViewAlert出现,UIViewController没有点击或选择,然后UIViewAlert消失,UIVIewController点击正常。在我的ViewController中有1个tablview,1个tabbar包含4个UIButton。

我将新的UIViewAlert称为:

    DetailView *detailAlert = [[DetailView alloc] init];
    [self.view addSubview:detailAlert];
    [detailAlert show];
    [detailAlert release];

有人告诉我吗?感谢

3 个答案:

答案 0 :(得分:1)

您可以通过在启动提醒视图之前添加BLOCK SCREEN来实现此目的,请参阅下面的代码

self.blockView=[[UIView alloc] initWithFrame:self.view.frame];
self.blockView.backgroundColor = [UIColor blackColor];
self.blockView.alpha = .5;
self.blockView.userInteractionEnabled=NO;
[self.view addSubview:self.blockView];

DetailView *detailAlert = [[DetailView alloc] init];
[self.view addSubview:detailAlert];
[detailAlert show];
[detailAlert release];

然后当您删除提醒视图时,请执行以下操作

[self.blockView removeFromSuperview];

答案 1 :(得分:0)

您可以使用弹出窗口显示DetailView。

使用它进行演示。 https://github.com/martinjuhasz/MJPopupViewController

答案 2 :(得分:0)

你可以创建一个清晰的视图控制器并以模态方式呈现它,参见下面的Swift 2示例:

private func TransparentViewController() -> UIViewController {
  let transparentViewController = UIViewController(nibName: nil, bundle: nil)
  transparentViewController.modalPresentationStyle = .OverCurrentContext
  transparentViewController.modalTransitionStyle = .CrossDissolve
  transparentViewController.view.backgroundColor = UIColor.clearColor()
  return transparentViewController
}

现在,您可以在呈现HUD之前在视图控制器中呈现它:

let transparentViewController = TransparentViewController()
self.presentViewController(transparentViewController, animated:false, completion: nil)