Reputation: 8586
I'm developing an SplitView based app for iOS
where I added a button on my master viewcontroller for hidding this view, I did it like this
MasterViewController.m
- (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];
}
as you can see I added the functionallyty of my Detail View Controller's leftBarButtonItem on my own button and then I ordered to perform it's own selector here
[button.target performSelector:button.action];
but now I get this warning :
PerformSelector may cause a leak because its selector is unknown
I did that way since Detail Controller has it prebuilt and I don't know it's selector's name, how to know that???
EDIT: these are my two screens:
DetailViewController (original pre-built button)
MasterViewController (where I developed my button clone from pre-built button in detail view)
EDIT: thanks to Jesus gonna put my answer:
- (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)
Upvotes: 1
Views: 195