2014-06-12 3 views
0

У меня есть UItableView, из которого я хочу перемещаться на другом контроллере. для этого сделайте то, что другие предлагают и что я делаю ранее, перетаскивая сегмент из ячейки таблицы зрения в другое представление и устанавливая идентификатор segue.Как создать segue соединение b/w tableview и просмотреть программно?

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

что я прошу, есть ли способ создать программный ч/б для segue b/w?

Я думаю, что класс UIstoryboardSegue может решить эту проблему, но как это работает.

+0

попробуйте эту ссылку он надеется на U HTTP://stackoverflow.com/questions/23102978/swrevealviewcontroller-without-using-navigationcontroller/23105142#23105142 –

+0

спасибо @ Anbu.Karthik Я также говорю о SWRevealViewControllerSegue n этого api, я обязан подключать ячейки боковой панели вручную к другому контроллеру вида. Мой элемент меню боковой панели - большой список. Я не хочу создавать 20+ прототипов и создавать и подключать segue. вы можете мне посоветовать. –

+0

Здесь [ссылка] (http://stackoverflow.com/questions/9674685/creating-a-segue-programmatically) может быть полезно для u. – nikhil84

ответ

1

Вместо подключения и создания SEGUE из отдельных ячеек, вы можете подключить все эти перетекает от кнопки View Controller, лежащий ниже вашей точки зрения в раскадровку. В этом случае у вас будет несколько секций, и ни один из них не будет индивидуально подключен к ячейкам. И когда segues готовы, вы можете использовать этот метод для перехода к следующему контроллеру View в зависимости от того, какая ячейка выведена из tableView.

[self performSegueWithIdentifier:@"yourSegue" sender:nil]; 

Вам просто нужно проверить, какая ячейка постукивается, а затем выполнить соответствующий переход по выходу Segue.

Надеюсь, это поможет.

+0

Вместо подключения и создания segue из отдельных ячеек вы можете подключить все эти сегменты из кнопки View Controller ??? расскажите мне об этом. У меня нет кнопки на столе. –

+0

См. Мой обновленный ответ. Эта желтая кнопка является кнопкой View Controller, и вам придется создавать segues с помощью этой кнопки. –

+0

спасибо, что он отлично работает –

1
- (void) prepareForSegue: (UIStoryboardSegue *) segue sender: (id) sender 
{ 
// Set the title of navigation bar by using the menu items 
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow]; 
UINavigationController *destViewController = (UINavigationController*)segue.destinationViewController; 
destViewController.title = [[menuItems objectAtIndex:indexPath.row] capitalizedString]; 



if ([segue isKindOfClass: [SWRevealViewControllerSegue class]]) { 
    SWRevealViewControllerSegue *swSegue = (SWRevealViewControllerSegue*) segue; 

    swSegue.performBlock = ^(SWRevealViewControllerSegue* rvc_segue, UIViewController* svc, UIViewController* dvc) { 

     UINavigationController* navController = (UINavigationController*)self.revealViewController.frontViewController; 
     [navController setViewControllers: @[dvc] animated: NO ]; 
     [self.revealViewController setFrontViewPosition: FrontViewPositionLeft animated: YES]; 
    }; 

} 

} 

в другом выборе

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (index path.row==0)//just like assign the row index 
    { 
     [self performSegueWithIdentifier:@"yourSeguename" sender:nil]; 
     } 
    } 
+0

drag n drop process of segue, где вы это делаете? –

+0

Я не могу это понять?drag n drop process of segue, где вы это делаете –

1

1. Создать выездную SEGUE в главном View Controller:

- (IBAction)unwindSegue:(UIStoryboardSegue *)segue 
{ 
    // Without naming a segue 
    if ([segue.sourceViewController isKindOfClass:[MyOtherViewController class]]) 
     // Returning from MyOtherViewController 

    // Using a segue name 
    if ([segue.identifier isEqualToString:@"MySegue"]) 
    { 
     // Do something 
    } 
} 

2. Вы можете найти SEGUE на схеме документа следующим образом:

Your Unwind segue

3. Управление + перетаскивание с желтого на зеленый значок должно показать вам ваш выход:

Connect в Interface Builder: Exit segue

4.

Имя вы непосредственно перейти:

enter image description here

Вызов его:

[self performSegueWithIdentifier:@"MySegue" sender:self]; 
Смежные вопросы