2013-09-26 2 views
0

Может ли кто-нибудь помочь мне понять, что происходит с моей функцией ниже PLS?Вызов функции с помощью кнопки

Я довольно новичок в родной ОС IOS.

Я хотел реализовать боковую панель в нашем приложении, используя этот учебник (http://www.appcoda.com/ios-programming-sidebar-navigation-menu/).
Все, что работает хорошо, и достаточно прост - но я хотел, чтобы вызвать выявить функциональные возможности с помощью стандартной кнопки, а не динамической кнопки в заголовке - в соответствии с нашим дизайном ..

Исходный код выглядит следующим образом -

#import "SWRevealViewController.h" 


// Change button color 
_sidebarButton.tintColor = [UIColor colorWithWhite:0.96f alpha:0.2f]; 

// Set the side bar button action. When it's tapped, it'll show up the sidebar. 
_sidebarButton.target = self.revealViewController; 
_sidebarButton.action = @selector(revealToggle:); 

// Set the gesture 
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; 

повторить эту функциональность, запускаемую кнопкой Я добавил следующее в файл .h -

@property (weak, nonatomic) IBOutlet UIBarButtonItem *sidebarButton; 

@property (weak, nonatomic) IBOutlet UIButton *revealLeftBtn; 
- (IBAction)btnClickRevealL:(id)sender; 

и следующий в моем файле .m

- (IBAction)btnClickRevealL:(id)sender { 


[self.revealViewController]; 
[@selector(revealToggle:)]; 

} 

Я получаю сообщение об ошибке «подозреваемый идентификатор» для вышеуказанных строк. Я не понимаю, как функции, вызванные предыдущим методом, а не с помощью вышеописанного, могут кому-нибудь помочь? Приветствия

для справки это весь файл .М -

#import "MainViewController.h" 
#import "SWRevealViewController.h" 


@interface MainViewController() 

@end 

@implementation MainViewController 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

self.title = @""; 

// Change button color 
_sidebarButton.tintColor = [UIColor colorWithWhite:0.96f alpha:0.2f]; 

[self.navigationController.navigationBar setTranslucent:TRUE]; 

// Set the side bar button action. When it's tapped, it'll show up the sidebar. 






// Set the gesture 
[self.view addGestureRecognizer:self.revealViewController.panGestureRecognizer]; 




} 

- (void)didReceiveMemoryWarning 
{ 
[super didReceiveMemoryWarning]; 
// Dispose of any resources that can be recreated. 
} 

- (IBAction)btnClickRevealL:(id)sender { 


[self.revealViewController]; 
[@selector(revealToggle:)]; 

} 
@end 

ответ

8

Эта линия:

(IBAction)btnClickRevealL:(id)sender { 


[self.revealViewController]; 
[@selector(revealToggle:)]; 

} 

ничего не делает.

Я думаю, это то, что вы хотите сделать:

[self.revealViewController revealToggle:sender]; 

При установке target и action одной кнопки, вы установите, какой класс делает действие (target) и какой метод называется (action).

это эквивалент делать [target action]

+1

пятно на - спасибо за вашу помощь @Antonio MG – Dancer

0
- (IBAction)logInBtnClicked:(id)sender { 
    //Remove WhiteSpace from start of uitextfield 
    self.emailIdTxtFldRef.text = [self.emailIdTxtFldRef.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 
    self.passwordTxtFldRef.text = [self.passwordTxtFldRef.text stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceCharacterSet]]; 
    if ([self.emailIdTxtFldRef.text isEqualToString:@""]||[self.passwordTxtFldRef.text isEqualToString:@""]) { 
     [self showMessage:@"All fields are mandatory" withTitle:@"Error"]; 
    }else{ 
     SWRevealViewController *revealVC = [self.storyboard instantiateViewControllerWithIdentifier:@"swRevealViewContoller"]; 
     revealVC.delegate=self; 
     [[UIApplication sharedApplication]keyWindow].rootViewController = revealVC; 
    } 
} 
+1

Пожалуйста, объясните свой код и почему он работает или обрабатывает эту проблему. – CaptJak

+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) действительно помогает улучшить качество вашего после. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – NathanOliver

Смежные вопросы