2014-08-20 5 views
1

Я пытаюсь вставить пользовательский UITableViewController внутри Container View. Контейнерный вид помещается внутри ячейки статического UITableView, как показано на рисунке ниже.Пользовательский UITableViewController внутри контейнера Вид: NSInternalInconsistencyException

enter image description here

Я просто хочу способ объединить статические с динамическими клетками в том же экране.

Identity Inspector В случае, когда поле Класс пуст (т.е. стандарт UITableViewController) он работает, показывая пустую динамическую таблицу внутри клетки. Но когда я кладу имя пользовательского класса (который расширяет UITableViewController) в этой области я получаю NSInternalInconsistencyException:

[UITableViewController loadView] loaded the "Enx-aT-Rum-view-zY2-9U-Z6d" nib but didn't get a UITableView. 

Это содержимое MyCustomUITableViewController:

@implementation MyCustomUITableViewController 

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil 
{ 
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    if (self) { 
     // Custom initialization 
    } 
    return self; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    // Uncomment the following line to preserve selection between presentations. 
    // self.clearsSelectionOnViewWillAppear = NO; 

    // Uncomment the following line to display an Edit button in the navigation bar for this view controller. 
    // self.navigationItem.rightBarButtonItem = self.editButtonItem; 
} 

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

#pragma mark - Table view data source 

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    // Return the number of sections. 
    return 1; 
} 

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 2; 
} 
@end 

я должен признать, что я до сих пор дон Не понимаю всей логики Container View, но я просто хочу показать только один вид внутри (не делать никаких обменов или иначе).

Любая помощь будет оценена, спасибо!

+0

Я не уверен, почему вы получили эту ошибку, но похоже, что сочетание статических и динамических ячеек - это трудный путь (особенно, поскольку у вас есть только 2 строки). Вы ничего не можете сделать со статической ячейкой, которую вы не можете сделать с динамическими, поэтому я бы просто использовал все динамические ячейки. – rdelmar

+0

нет 2 пример, может быть больше. Я предпочитаю статичность для остальных, потому что я построил весь интерфейс в раскадровке, иначе мне пришлось делать это программно. В любом случае мне нравится ваша точка – Sanandrea

+1

Вы все равно можете использовать свои интерфейсы, которые вы создали в раскадровке в динамической ячейке; вам не нужно делать это в коде. Просто имейте уникальный идентификатор для каждой ячейки, которую вы создаете, и удалите все, что вам нужно, на основе indexPath. – rdelmar

ответ

1

После того как я ударил головой по столу так много часов, мне удалось это разрешить. Мне пришлось выделить/запустить табличное представление MyCustomUITableViewController. Я переопределить loadView метод MyCustomUITableViewController:

- (void) loadView{ 
    self.tableView = [[UITableView alloc]init]; 
} 

И это хорошо идти!

+0

По-прежнему не понимаю, почему, но это разрешено. – Sanandrea

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