呈现的 ModalView 显示在自定义视图中,从中调用它

Posted

技术标签:

【中文标题】呈现的 ModalView 显示在自定义视图中,从中调用它【英文标题】:presented ModalView gets displayed within the custom view, from which its called 【发布时间】:2012-11-19 20:03:34 【问题描述】:

上图显示了我的应用程序的架构。我创建了一个自定义视图来显示 UIViewController3 中 1 和 2 中的内容。

我想在VC1和2中触摸自定义视图时直接跳转到VC4..

自定义视图是 UIView,我在 Interface Builder 中将其更改为 UIControl,以接收触摸事件..

我在自定义视图类touchevent方法中使用了如下代码

    - (IBAction)customViewTouched:(id)sender 

        VC4 *nextController = [[VC4 alloc] initWithNibName:@"VC4" bundle:nil];

        UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:nextController];

       [self presentViewController:navigationController animated:YES completion:nil];

        navigationController.navigationBar.tintColor = [UIColor blackColor];
        navigationController.navigationBar.topItem.title = @"My Title";



        navigationController.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]
 initWithTitle:@"Back" style:UIBarButtonItemStyleBordered target:self action:@selector(cancel)];
        navigationController.navigationItem.hidesBackButton = FALSE;

       // navigationController.navigationBar.backItem.title = @"back";

    

    在 VC2 中触摸自定义视图时(正确调用它)- VC4 弹出,但仅在自定义视图中..

    我也无法在导航栏上获得后退按钮。 (正如其他***答案中所建议的,我也尝试在ViewDidLoad中设置自定义视图的标题)

3.我在 customView 大小的 VC1 中创建了一个虚拟 UIButton 并将 customView 放入其中 .. 这样我就可以处理 VC1 本身的触摸事件 .. 这会产生任何性能问题吗?

[myCustomViewButton addTarget:self action:@selector(myEventHandler) forControlEvents: UIControlEventTouchUpInside];

当我使用上面的代码时,它不会抛出任何错误,但是当我使用“UIViewController”类名时,myEventHandler 方法永远不会在 addTarget 而不是“self”中被调用,它会抛出错误..

我不知道如何继续这个..任何帮助表示赞赏:)

【问题讨论】:

【参考方案1】:

我假设未提及的 VC3 管理您的自定义视图:

将 [self presentVC] 更改为 [self.parentVC presentVC]

您从中展示 VC4 的 VC3 作为子级嵌入在 VC1 和 VC2 中

【讨论】:

[self.parentViewController presentViewController:navigationController animated:YES completion:nil];我试过这个,但没有任何反应.. 我们不能在 VC1 本身的 customview 上处理触摸事件吗?我的意思是不将调用发送回 customview 类' - (IBAction)customViewTouched:(id)sender 方法.. 仅供参考,我在带有 pageControll 的滚动视图中堆叠了 10 个自定义视图 或者我应该在 customView 大小的 VC1 中创建一个虚拟 UIButton 并将 customView 放入其中 .. 这样我就可以处理 VC1 本身的触摸事件 .. 这会产生任何性能问题吗?

以上是关于呈现的 ModalView 显示在自定义视图中,从中调用它的主要内容,如果未能解决你的问题,请参考以下文章

从 MasterViewController 呈现的 ModalView 在 iOS 5.1 中不再是全屏

iOS - 如果应用程序首次启动 - 呈现 ModalView

在自定义视图上显示弹出菜单时不要关闭键盘

从 ChildViewController 呈现 ModalView

关闭一次后如何呈现相同的modalView

在自定义绘制的视图中动画大小变化的问题