Ios 如何了解uibarbuttonite选择器';姓名
我正在为iOS开发一个基于SplitView的应用程序 我在主视图控制器上添加了一个隐藏此视图的按钮,我是这样做的 MasterViewController.mIos 如何了解uibarbuttonite选择器';姓名,ios,selector,uibarbuttonitem,Ios,Selector,Uibarbuttonitem,我正在为iOS开发一个基于SplitView的应用程序 我在主视图控制器上添加了一个隐藏此视图的按钮,我是这样做的 MasterViewController.m - (IBAction)hideMasterViewController:(id)sender { if (!app) { app = (AppDelegate *)[[UIApplication sharedApplication] delegate]; } if (!currentSplitVie
- (IBAction)hideMasterViewController:(id)sender {
if (!app) { app = (AppDelegate *)[[UIApplication sharedApplication] delegate]; }
if (!currentSplitViewController) {
currentSplitViewController = (UISplitViewController *) app.window.rootViewController;
}
navController = [currentSplitViewController.viewControllers lastObject];
UIBarButtonItem *button = [[[[navController childViewControllers] objectAtIndex:0] navigationItem ] leftBarButtonItem];
[button.target performSelector:button.action];
}
如您所见,我在我自己的按钮上添加了我的局部视图控制器的LeftBarButtonim的功能,然后我命令在这里执行它自己的选择器
[button.target performSelector:button.action];
但现在我得到了这个警告:
PerformSelector可能会导致泄漏,因为其选择器未知
我是这样做的,因为细节控制器已经预先构建好了,我不知道它是选择器的名字,怎么知道
编辑:这是我的两个屏幕: DetailViewController(原装预建按钮) MasterViewController(我从细节视图中的预构建按钮开发了我的按钮克隆)
编辑:感谢耶稣将我的答案:
- (IBAction)hideMasterViewController:(id)sender {
if (!app) { app = (AppDelegate *)[[UIApplication sharedApplication] delegate]; }
if (!currentSplitViewController) {
currentSplitViewController = (UISplitViewController *) app.window.rootViewController;
}
navController = [currentSplitViewController.viewControllers lastObject];
UIBarButtonItem *button = [[[[navController childViewControllers] objectAtIndex:0] navigationItem ] leftBarButtonItem];
[button.target performSelector:@selector(toggleMasterVisible:)];
}
-(IBAction)toggleMasterVisible:(id)sender{
}
NSStringFromSelector(button.action)
NSStringFromSelector(button.action)
看起来您正在对主视图控制器中的代码隐藏主视图控制器。如果是这样的话,为什么需要来自细节控制器中按钮的选择器?为什么不让主视图控制器隐藏自己呢?我正在从主视图控制器隐藏主视图控制器本身,我画了一个按钮,我设置了细节视图控制器的隐藏动作,因为客户希望在menú上有一个按钮来隐藏它,我将上传一个屏幕截图——