2013-07-03 2 views
0

У меня есть этот код на моей программекнопки Actionsheet не реагирует при использовании showInView

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 

UIButton *saveMessageBtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
[saveMessageBtn setImage:[UIImage imageNamed:@"btn_done.png"] forState:UIControlStateNormal]; 
[saveMessageBtn addTarget:self action:@selector(saveMessage) forControlEvents:UIControlEventTouchUpInside]; 
[saveMessageBtn setFrame:CGRectMake(0, 0, 49, 30)]; 
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:saveMessageBtn]; 
} 

-(IBAction)saveMessage:(id)sender{ 


UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Send Now",@"Non Recurring",@"Recurring", nil]; 
[actionSheet showInView:self.view]; 
} 

- (void)actionSheet:(UIActionSheet *) actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex{ 

if (buttonIndex == 0){ 
    NSLog(@"Send Now"); 
} 
else if (buttonIndex == 1){ 
    [self performSegueWithIdentifier:@"modalNonRecurring" sender:self]; 
} 
else if (buttonIndex == 2){ 
    [self performSegueWithIdentifier:@"modalRecurring" sender:self]; 
} 
else{ 
NSLog(@"Cancel Clicked"); 
    } 
} 

как вы можете видеть в коде, он должен выполнить SEGUE или сделать «NSLog», когда конкретная кнопка нажата.

Но когда я нажимаю кнопку, он не выполняет то, что я хочу, чтобы это сделать, вместо этого он выводит это сообщение в области отладки ..

Presenting action sheet clipped by its superview. Some controls might not respond to touches. On iPhone try -[UIActionSheet showFromTabBar:] or -[UIActionSheet showFromToolbar:] instead of -[UIActionSheet showInView:].

Кстати, я использую UINavigationController, который находится внутри UITabBarController. Любой, у кого есть отличная идея, как это исправить? ваша помощь будет высоко оценена. Благодаря!

ответ

0

Добавить UIActionSheetDelegate делегировать в файл .h и попробовать как это, тогда он будет работать.

UIActionSheet *actionSheet = [[UIActionSheet alloc]initWithTitle:nil delegate:nil cancelButtonTitle:@"Cancel" destructiveButtonTitle:nil otherButtonTitles:@"Send Now",@"Non Recurring",@"Recurring", nil]; 
    actionSheet.delegate = self; 
    [actionSheet showInView:self.view]; 
+0

@chibimai: он работает сейчас? – Balu

+1

да, это работает! Большое спасибо. Все должны дать вам плюс, я сожалею, что у меня недостаточно репутации, чтобы дать вам один @Sunny – caribbean

+0

@chibimai: k fine dear.accept this answer. – Balu