我已经下载了一个很好的示例代码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];
。