2015-07-17 4 views
0

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

- (void)viewDidLoad { 
[super viewDidLoad]; 
// Do any additional setup after loading the view. 

ViewController *viewController = [[ViewController alloc] init]; 

self.segue = [[UIStoryboardSegue alloc] initWithIdentifier:@"showInfo" source:self destination:viewController]; 

//change the background color to white 
self.view.backgroundColor = [UIColor whiteColor]; 

//create the table view 
UITableView *tableView = [[UITableView alloc] init]; 

//initialize the data source and the delegate to self - as the methods are going to be specified in this script 
tableView.dataSource = self; 
tableView.delegate = self; 

//register the class for the tableView 
[tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"cell"]; 

//now assign the table view to our our viewController's property 
self.view = tableView;} 
+1

Если вы не хотите использовать раскадровку, то почему вы создаете объект класса раскадровки, просто просто выделите init и не используйте его для создания объекта segue. Я предлагаю использовать раскадровку - одна из мощных возможностей Xcode. –

ответ

2

Segues не может быть создан программно. В документации Apple указано:

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

Идентификатор initWithIdentifier: source: destination: метод предназначен для целей подкласса.

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

+0

Вы бы просто нажали на навигационный стек? –

+0

Это зависит от ситуации ... Да, если вы используете контроллер навигации, вы, вероятно, нажмете на стек [self.navigationController pushViewController: destinationViewController animated: YES], но вы также можете представить контроллер представления назначения с помощью [self presentViewController: destinationViewController анимированный: ДА завершение:^{}]. Вы можете управлять типом модального перехода, задав свойства modalTransitionStyle и modalPresentationStyle контроллера представления назначения перед его представлением. –

+0

Спасибо, приятно знать! –