-2

Я рассматриваю добавление многочисленных табличных представлений в существующий контроллер просмотра пользовательского интерфейса.Добавление нескольких видов в вид контейнера

Я видел https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html, который, кажется, так, как я должен идти.

Однако, мой вопрос: могу ли я встроить несколько TableView в один контейнер ContainerView?

Мое приложение выполняет множество тестов, для которых есть результаты. По завершении каждого теста я хочу добавить TableView, чтобы они отображались под другим способом аккуратно.

Возможно ли это?

+0

Что вы подразумеваете под контейнером View? Существует контроллер контейнера. Это особая вещь ... но нет специального вида контейнера ... любой стандартный UIView может быть видом контейнера на практике. –

+0

Я попытался объяснить это немного больше в этом вопросе: http://stackoverflow.com/questions/28844921/add-a-uitableview-to-an-existing-viewcontroller –

+1

Бит суровый, давая минус голоса, когда я ищут помощь по наилучшему подходу к чему-то ..... –

ответ

1

Да, вы можете. Вы можете сделать две вещи:

ONE View Controller - МНОГО представлений таблицы (как подвид в представлении корня)

или

ONE Контейнер Контроллер - МНОГО ChildViewControllers с использованием VC сдерживания (и каждый из них имеет один вид таблицы)

+0

Можете ли вы взглянуть на http://stackoverflow.com/questions/28844921/add-a-uitableview-to-an-existing-viewcontroller и сообщить мне где я ошибаюсь? Спасибо –

+0

Этот вопрос правильно ответил @Gavin Bunney. Связано ли это с этим? –

0

Это то, что вы могли бы сделать в ViewDidLoad для подкласса UIViewController.

// Do any additional setup after loading the view, typically from a nib. 

CGRect frame = self.view.frame; 

// this container shall hold the two tables that I am going to add later 
// container shall share the same size as view controller's "view" 
UIView *container = [[UIView alloc] initWithFrame:frame]; 

frame.size.height = frame.size.height/2; // I want to fit two table view vertically to cover the container view 

UITableView *tableView1 = [[UITableView alloc] initWithFrame:frame]; 
tableView1.backgroundColor = [UIColor redColor]; 
// ... 
// ... 
// Assign more table view properties here 
// ... 
// ... 
[container addSubview:tableView1]; 

frame.origin.y = frame.size.height; // update coordinates for the second table view 

UITableView *tableView2 = [[UITableView alloc] initWithFrame:frame]; 
tableView2.backgroundColor = [UIColor greenColor]; 
// ... 
// ... 
// Assign more table view properties here 
// ... 
// ... 
[container addSubview:tableView2]; 

[self.view addSubview:container]; 

вы должны должны установить делегат для всех tableviews, чтобы заставить их работать должным образом, но это должно дать вам то, чтобы начать работать. (Я добавил несколько разных цветов фона, чтобы различать оба вида таблиц)

+0

И какова именно точка зрения на контейнер? Он избыточен, не имеет никакой цели. Кроме того, frame.origin.y = frame.size.height; // обновлять координаты для второго представления таблицы - провалится, потому что вы не можете установить член структуры, вам нужно создать новую. –

+0

frame.origin.y = frame.size.height; wont fail, потому что frame является локальной переменной. Вы можете оставить представление контейнера и добавить его непосредственно в self.view, если хотите, там только для уточнения того, как вы можете добавить несколько видов в контейнер. – MJay

+0

И я подумал, что я был сделан с кадрами очень давно. По-видимому, UIView каким-то образом защищает членов структуры 8-/Спасибо за это, вы сэр правы :) –