2013-08-26 3 views
-2

File OrganizationОтклонить ModalView, который был представлен tableViewController?

В моем проекте приложение запускает в ViewController, который загружает внутри таблицы (класс таблицы), добавляя его как подвид (ViewController.h - [self.view addSubview: Table.tableView];)

Класс камеры - это подробный вид, поэтому при нажатии в строке таблицы он загружает Camara.xib. Пока здесь все работает нормально.

Проблема возникает, когда я пытаюсь отклонить Camera.xib и вернуться к ViewController.xib, когда я делаю это, Camera.xib отклоняет все в порядке, но вместо того, чтобы вернуться в ViewController.xib с Table.xib внутри него, Приложение загружает только Table.xib, поэтому остальные объекты, которые были размещены в представлении ViewController.xib, не отображаются.

Что я делаю неправильно?

Спасибо заранее!

КОД:

Table.m

- (void)viewDidLoad 
{ 

    roomsArray = [[NSMutableArray alloc] initWithObjects:nil]; 
    [super viewDidLoad]; 

} 


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // my code... 

    Camara *camara = [[Camara alloc] initWithNibName:@"Camara" bundle:nil]; 
    [self presentViewController:camara animated:YES completion:nil]; 

} 

Camara.m

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

ViewController.m

- (void)viewDidLoad 
{ 

    table = [[Table alloc] initWithNibName:@"Table" bundle:nil]; 

    [windows.tableView reloadData]; 
    [self.view addSubview:windows.tableView]; 
    windows.tableView.transform = CGAffineTransformMakeTranslation(0, 44); 

    [super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 

}

+1

Просьба указать код. –

+1

Пожалуйста, показать больше Code @ yeker3 –

+0

скажите, какой код вы хотите, потому что я не могу загрузить код дыры, так как этот проект не является публичным, извините за неудобства! @ Pétur – yeker3

ответ

0

проблема заключалась в том, что tableViewController и ViewController были в двух контроллерах зрения, поэтому я объединил их, и теперь все работает отлично.

1

Не видя кода, который вы используете, я не могу ответить полностью, но я предполагаю, что вам нужно что-то в viewWillAppear, чтобы перезагрузить таблицу или таблицу xib. viewWillAppear будет вызван каждый раз, когда ваш модал будет отклонен.

Другой вариант - создать протокол делегирования, чтобы ваш модальный контроллер мог вызвать метод на вашем первом контроллере представления.

Это хорошая статья, чтобы начать с: https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/ModalViewControllers/ModalViewControllers.html

+0

код добавлен ноу-хау – yeker3

0

Прежде всего, я должен сказать, что ваш вопрос получил downvotes, скорее всего потому, что его написано в плохом английском и изначально не хватало не хватает необходимой информации, необходимой для решение.

Далее, я хотел бы подчеркнуть, что супер-вызовы, такие как [super viewDidLoad], должны всегда встречаться перед любой логикой кода. Переместите их в начало каждого метода.

Теперь, почему у вас проблемы.

Всякий раз, когда в памяти создается контроллер вида, он выполняет свой метод viewDidLoad, а затем выполняет метод viewWillAppear непосредственно перед его отображением (на его родительском объекте, если только не перегружает его), это выполнение происходит только один раз в течение времени просмотра. Любые будущие попытки отобразить представление вызовут viewWillAppear.

Решение Переместить следующий код

[windows.tableView reloadData]; 
[self.view addSubview:windows.tableView]; 
windows.tableView.transform = CGAffineTransformMakeTranslation(0, 44); 

в

-(void)viewWillAppear:(BOOL)animated { 
    [super viewWillAppear:animated]; 
    [windows.tableView reloadData]; 
    [self.view addSubview:windows.tableView]; 
    windows.tableView.transform = CGAffineTransformMakeTranslation(0, 44); 
} 
+0

FIRST OF ALL, я не знал, что это экзамен на Кембриджский английский экзамен (извините, что вы пытаетесь говорить что-то, что не является моим первым языком ...). Спасибо за ваш ответ, но не работал для меня. У меня все еще такая же проблема @ Pétur – yeker3