2011-02-05 3 views
0

Я уверен, что это прямое приложение, но не уверен, что лучший способ (и это все новое). У меня есть контроллер навигации с UITableViewController (все работает в UITabViewController).Навигация с помощью UITableView и подробного представления

Когда пользователь вводит строку, приложение переходит к подробному представлению. Теперь я пытаюсь связать жесты влево и вправо, чтобы перейти к предыдущей и следующей записи. Но каков правильный способ сделать это из подробного представления, что проще всего получить ссылку на мой TableViewController?

Связанный с этим вопрос заключается в том, как я мог бы связать «pull down» с тем же действием, что и «обратная» кнопка навигационного контроллера.

Я надеюсь, что это имеет смысл. Спасибо за миллион!


У меня есть что-то вроде того, что мне нравится, но оно очень неуклюжие. При вызове DetailView я передаю в качестве параметра указатель на «self» и текущий «selectedRow». Затем, когда выполняется салфетка, я вызываю функцию moveToNextRecord на tabelViewController (с предоставленным указателем) и имеет выбранный параметр Row в качестве параметра. В tableViewController я затем вызываю selectRowAtIndexPath и didSelectRowAtIndexPath.

-(void)moveToNextRecord:(NSIndexPath*) selectedRow{ 
    //[self.navigationController popViewControllerAnimated:YES]; 
    //NSIndexPath *selectedRow = [self.tableView indexPathForSelectedRow]; 
    NSUInteger row = selectedRow.row; 
    NSUInteger section = selectedRow.section; 
    ++row; 
    if(row >= [self.tableView numberOfRowsInSection:selectedRow.section]) 
    { 
     row = 0; 
     ++section; 
     if(section >= [self.tableView numberOfSections]) 
     { 
      row = 0; 
      section = 0; 
     } 
    } 
    [self.tableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:section] animated:YES scrollPosition:UITableViewScrollPositionMiddle]; 
    [self tableView:self.tableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:row inSection:section]]; 
} 

Это похоже на работу, но проблема в том, что следующая запись прорезана после предыдущей. Это означает, что обратная кнопка возвращает меня к предыдущей записи и не возвращается к представлению таблицы. Поэтому я думаю, что я должен сказать ViewController, что я не хочу их складывать, но в основном возвращаюсь, а затем выбираю следующую строку, показывая анимацию непосредственно из одного detailView в следующий. Это имеет смысл?

([self.navigationController popViewControllerAnimated: YES]. В качестве первого беллетристика, кажется, не работает, как это не надлежащий поток)

ответ

0

Я перемещаюсь к решению PageControl, так как это значительно улучшенный пользовательский интерфейс, поскольку страница фактически перемещается одновременно с удалением пользователя. С приведенным выше предложением мне нужно будет перевернуть кнопку «назад» и вручную заполнить стек ViewController, чтобы разрешить переход слева направо при правильном прокрутке (и это происходит только тогда, когда салфетки завершены)

0

С точки зрения детализации, как только вы осознаете этот жест, а затем вызвать:

[self.navigationController popViewControllerAnimated:YES];

это будет перемещаться назад.

+0

Спасибо за это! Любые мысли о навигации по TableView? Я не могу заставить его работать вообще. –

+0

Что ты имеешь в виду? пожалуйста, подробно объясните, что вы хотите сделать. – viggio24

+0

Я ценю это. С тех пор я добился определенного прогресса, поэтому я отредактирую код выше, чтобы показать. –