Представить представление из делегата модально в iOS 5

#iphone #ios #ios5

#iPhone #iOS #ios5

Вопрос:

Кажется, я не могу найти это нигде в Интернете. У меня есть кнопка добавления в одном из моих представлений, и я подключил ее к вызываемому IBAction методу add . В моей раскадровке я создал представление, в котором настроена форма. Я также присвоил класс этому представлению в раскадровке. Вызывается этот класс AddItemViewController .

Я пытаюсь представить это представление модально, а затем установить делегат для представления, которое вызывало AddItemViewController. Однако все, что я получаю, это пустой UITableViewController, который отображается. Вот мой код, который я пытаюсь использовать:

 - (IBAction)add {
    AddItemViewController *addItem = [[AddItemViewController alloc] init];
    addItem.delegate = self;
    [self presentModalViewController:addItem animated:YES];
}
  

Есть ли что-то, чего мне не хватает? Почему он просто показывает пустую таблицу, а не контроллер представления, который я настроил в раскадровке?

Вот код из AddItemViewController:

 @interface AddItemViewController : UITableViewController <UITextFieldDelegate> {
}

@property (strong, nonatomic) IBOutlet UITextField *note;

- (void)save:(id)sender;
- (void)cancel:(id)sender;
@end


@implementation AddItemViewController
    - (void)viewDidLoad {

    }

    - (IBAction)cancel:(id)sender {
        [self dismissViewControllerAnimated:YES completion:nil];
    }

    - (IBAction)save:(id)sender {
        DbHandler *db = [[DbHandler alloc] init];
        [db executeUpdate:self.note];

        [self dismissViewControllerAnimated:YES completion:nil];
    }
@end
  

Комментарии:

1. Можете ли вы предоставить код для класса AddItemViewController?

2. Добавлен приведенный выше код AddItemViewController

Ответ №1:

Ну, AddItemViewController наследуется от UITableViewController, а не от UIViewController, поэтому имеет смысл, что появляется UITableViewController.

Вы должны инициировать AddItemViewController подобное:

AddItemViewController *addItem = [[AddItemViewController alloc] initWithNibName:@"AddItemViewController"];