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

时间:2012-11-19 20:03:34

标签: ios uinavigationbar modalviewcontroller presentmodalviewcontroller custom-view

enter image description here

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

我希望在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";

    }

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

  2. 此外,我无法在导航栏上找到后退按钮。 (正如其他stackoverflow答案中所建议的那样,我也尝试在ViewDidLoad中设置自定义视图的标题)

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

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

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

    我不知道如何继续这个..感谢任何帮助:)

1 个答案:

答案 0 :(得分:0)

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

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

您正在呈现VC4的VC3作为V​​C1和VC2中的子项嵌入