2013-08-18 5 views
0

Im работает с контроллерами настольных представлений в доске объявлений.View View View View View View View

У меня в настоящее время есть один контроллер таблицы, встроенный в контроллер навигации в моем раскадровке. Этот контроллер табличного представления связан с файлом ObjectiveC.

С помощью кода я могу отобразить другой контроллер табличного представления с правильными данными, используя метод tableView didSelectRowAtIndexPath.

код:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    WorkoutType *workoutType = (WorkoutType *)[self.fetchedResultsController objectAtIndexPath:indexPath]; 
    WorkoutSetViewController *detailViewController = [[WorkoutSetViewController alloc] initWithWorkoutType:workoutType]; 

    [self.navigationController pushViewController:detailViewController animated:YES]; 

} 

Но если я пытаюсь добавить еще один контроллер представления таблицы в раскадровке, связать его с ObjectiveC файл контроллера представления и подключить первый TVC к нему, что табличное контроллер не отображается на запуск кода.

мне нужно настроить второй вид таблицы визуально и попытались использовать SEGUE толчок ... следующим образом:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender 
{ 
    if ([[segue identifier] isEqualToString:@"show"]) { 



     NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 

     WorkoutType *workoutType = (WorkoutType *)[self.fetchedResultsController objectAtIndexPath:indexPath]; 
     //WorkoutSetViewController *detailViewController = [[WorkoutSetViewController alloc] initWithWorkoutType:workoutType]; 
     WorkoutSetViewController *destViewController = segue.destinationViewController; 
     destViewController.workoutType = workoutType; 
     //[self.navigationController pushViewController:detailViewController animated:YES]; 


    } 
} 

Но когда я запускаю этот код, то второй контроллер представления таблицы не даже хотя приложение не сбой.

Все, что я делаю неправильно, должно быть простым, любая помощь будет оценена по достоинству.

Спасибо

ответ

0

ли НЕ Alloc инициализировать Ваш новый контроллер представления. Используйте этот код вместо:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
WorkoutSetViewController *detailViewController = (WorkoutSetViewController *)[storyboard instantiateViewControllerWithIdentifier:@"coolID"]; 
[self.navigationController pushViewController:detailViewController animated:YES]; 

Для MainStoryboard написать свое имя раскадровки и coolID написать свое имя Ид вида контроллера, который вы установили в раскадровке.

2

Простой Вам необходимо перейти по нижестоящему коду. (Нет необходимости устанавливать раскадровку при работе в одном раскадровке ViewController)

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if(indexpath.row==0)//for first row click 
    { 
     WorkoutSetViewController *objWorkoutSetVC=[[WorkoutSetViewController alloc] i nitWithNibName:@"WorkoutSetViewController" bundle:nil]; 
     [self.navigationController pushViewController:objWorkoutSetVC animated:YES]; 
    } 
    else if(indexpath.row==1)//for second row click 
    { 
     //Put code in which screen you have to navigate 
    } 
} 
+0

Я отредактировал свой ответ .Проверьте его сейчас. –