我已经下载了一个很好的示例代码UAModalPanel。我已经在我的项目中实现了它,如果我们点击段控件的第一个索引,它将打开UAModalPanel。我可以成功地实现这一目标。

但是,如果我们在段控制中选择第二或第三索引,则需要关闭UAModalPanel。如何实现此目的。如果有人知道指导我?

 
如果我们点击下面的细分控件,则会调用

   -(void)navBarSegmentCntrl_tapped
{
if(navBarSegmentCntrl.selectedSegmentIndex==0)
{

    UAExampleModalPanel *modalPanel = [[UAExampleModalPanel alloc] initWithFrame:self.view.bounds title:@"dfg" ];



    [self.view addSubview:modalPanel];

    // Show the panel from the center of the screen
    [modalPanel showFromPoint:self.view.center];



}
else if(navBarSegmentCntrl.selectedSegmentIndex==1)
{
    [UAmodal hide];  //UAmodal allocated in view didload//
    imagePickerController = [[UIImagePickerController alloc] init];
    imagePickerController.delegate = self;
    imagePickerController.sourceType =
    UIImagePickerControllerSourceTypePhotoLibrary;

    [self presentModalViewController:imagePickerController animated:YES];
}


}

最佳答案

问题是您正在调用show的对象与您正在调用hide的对象不同。您应该在接口文件中声明它:

@interface MyViewController : UIViewController
{
    UAModalPanel *myModalPanel;
}


然后,当您在navBarSegmentCntrl_tapped方法中显示它时,便会将此myModalPanel初始化(记住,一旦您已经设置好它,就无需再次执行UAModalPanel *myModalPanel,并且您的视图控制器已经“知道了对象”。您只需执行myModalPanel = [[UAModalPanel alloc] init....)。

然后,要隐藏它,只需调用[myModalPanel hide];

10-08 20:05