Uiview iOS presentModalViewController不允许显示以前的视图

Uiview iOS presentModalViewController不允许显示以前的视图,uiview,uiviewcontroller,presentmodalviewcontroller,Uiview,Uiviewcontroller,Presentmodalviewcontroller,我正在使用presentModalViewController尝试在一些其他视图上显示UIView。我从控制器1调用presentModalViewController。我正在尝试显示controller2的视图 我从控制器1调用控制器2,如下所示: - (void) someButtonPressed: (id)sender { MyController* controller2 = [ [ MyController alloc ] initWithNibName:nil bundle

我正在使用presentModalViewController尝试在一些其他视图上显示UIView。我从控制器1调用presentModalViewController。我正在尝试显示controller2的视图

我从控制器1调用控制器2,如下所示:

- (void) someButtonPressed: (id)sender
{
    MyController* controller2 = [ [ MyController alloc ] initWithNibName:nil bundle:nil ];

    [self presentModalViewController:controller2 animated:YES];
    //[self presentViewController:controller2 animated:NO completion:nil ];
}
在controller2中,我执行以下操作:

- (void)viewDidLoad
{
    [super viewDidLoad];
    if (YES){

        UIWindow* keyWindow = [[UIApplication sharedApplication] keyWindow];
        UIView* master = (UIView*)[keyWindow viewWithTag:100]; // Master is the entire app, but always oriented so top left corner is 0,0.

        UIView* newView = [ [ UIView alloc ] initWithFrame:CGRectMake(100, 100, 400, 400) ];

        [self setView:newView ];

        self.view.backgroundColor = [ UIColor clearColor ];
    }

}
问题是,第一个控制器中的任何内容都不会显示出来。我希望前面的视图保持可见。有没有办法使第二个控制器的视图不可见?我之所以要这样做,是因为我希望第二个控制器/视图显示一个透明层,该层将捕获所有触摸事件,而无需它们进入控制器1管理的视图


非常感谢。

将视图添加为子视图,这样可以:

- (void) someButtonPressed: (id)sender
{
    MyController* controller2 = [ [ MyController alloc ] initWithNibName:nil bundle:nil ];

    [[self view] addSubview:[controller2 view]];
    // [controller2 release] if you aren't using ARC

    //[self presentModalViewController:controller2 animated:YES];
    //[self presentViewController:controller2 animated:NO completion:nil ];
}
如果您使用的是ViewDidDisplay in controller2,请将此行放在addSubView行之后:

[controller2 viewDidAppear:NO]
其他viewDid方法也是如此;)