программно созданное нажатие кнопки, чтобы открыть таблицу или всплывающее окно - PullRequest
0 голосов
/ 29 ноября 2011

Я создал кнопку программно в UITableViewCell, и я хочу, чтобы она открывала новое представление таблицы или всплывающее окно при нажатии. Пожалуйста, дайте мне учебник или подсказку. Ниже мой код:

UIButton *button =[UIButton buttonWithType:UIButtonTypeCustom];
button.frame=CGRectMake(0,0,360,25);
[button addTarget:self action:@selector(dropDownClick) forControlEvents:UIControlEventTouchUpInside];

-(IBAction)dropDownClick
{
    //Here I know there should be some code but I am not getting what it should be since I am new to iPad/iPhone development
}

Ответы [ 3 ]

4 голосов
/ 29 ноября 2011

Если вы просто хотите показать всплывающее окно при нажатии кнопки, вы можете использовать UIAlertVIew

- (IBAction)dropDownClick {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Title of popup" 
                                                    message:@"Did this popup show?" 
                                                   delegate:self 
                                          cancelButtonTitle:@"Yes" 
                                          otherButtonTitles:nil];
    [alert addButtonWithTitle:@"No"];
    [alert show];
}
0 голосов
/ 29 ноября 2011

Я предполагаю, что вы используете UINavigationController с вашим UITableView.

Если это так, попробуйте сделать это, чтобы открыть новое представление таблицы:

  • Создайте новый класс, который является подклассом UITableViewController. Убедитесь, что установлен флажок «С XIB для пользовательского интерфейса». Дайте ему имя, то есть «MyTableViewController».
  • Откройте файл реализации (заканчивающийся на .m) вашего класса, где у вас есть метод dropDownClick, и импортируйте новый класс с помощью #import "MyTableViewController.h". Сделайте это в начале вашего класса (файл .m).
  • Измените ваш метод dropDownClick на следующие строки:

-(IBAction)dropDownClick
{
    MyTableViewController *vc = [[MyTableViewController alloc] initWithNibName:@"MyTableViewController"]; // Loads a .xib file called "MyTableViewController.xib"
    [self.navigationController pushViewController:vc animated:YES]; // This is where the swapping happens.
    [vc release]; // Remember to do this if your app does not use ARC.
}

Вы также можете сделать это без использования .xib, но тогда это будет немного по-другому.

0 голосов
/ 29 ноября 2011

Вот пример для этого

//DISEGNO DELLE CELLE
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier;

CellIdentifier = @"CellStorico";


UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

    CGRect tRect1 = CGRectMake(0.0f, 3.0f, 768.0f, 40.0f);
    id title1 = [[UIButton alloc] initWithFrame:tRect3];
    [title1 addTarget:self action:@selector(ClickCheck:) forControlEvents:UIControlEventTouchUpInside];
    [title1 setTag:3];

    [cell addSubview:title1];
    [title1 release];

}




if ([[[Storico objectAtIndex:[indexPath row]] objectForKey:@"Selezionato"] isEqualToString:@"0"]) {
    [(UIButton *) [cell viewWithTag:3] setImage:[UIImage imageNamed:@"NoCheck.png"] forState:UIControlStateNormal];
    [(UIButton *) [cell viewWithTag:3] setImage:[UIImage imageNamed:@"NoCheck.png"] forState:UIControlStateHighlighted];
    [(UIButton *) [cell viewWithTag:3] setImage:[UIImage imageNamed:@"NoCheck.png"] forState:UIControlStateSelected];        
} else {
    [(UIButton *) [cell viewWithTag:3] setImage:[UIImage imageNamed:@"Check.png"] forState:UIControlStateNormal];
    [(UIButton *) [cell viewWithTag:3] setImage:[UIImage imageNamed:@"Check.png"] forState:UIControlStateHighlighted];
    [(UIButton *) [cell viewWithTag:3] setImage:[UIImage imageNamed:@"Check.png"] forState:UIControlStateSelected];
}   



return cell;
}

Управление кликами

-(void)ClickCheck:(id)sender{

//Ex. Load a New View
FrmScadenzeGenerali *SchermataScadenzeGenerali=[[FrmScadenzeGenerali alloc] initWithNibName:@"FrmScadenzeGenerali" bundle:nil];
[[self navigationController] pushViewController:SchermataScadenzeGenerali animated:YES];
[SchermataScadenzeGenerali release];


//Ex. PopUp a View
[self.view insertSubview:[TabTestata view] atIndex:0];

//Show a Message
UIAlertView *Alert = [[UIAlertView alloc] initWithTitle:@"Attenzione!" message:@"Error Text Message To Show!" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
    [Alert show];
    [Alert release];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...