다른 viewController에서 segue를 실행하려고합니다. 일반적으로 segue는 TVC에서 Cell을 탭하여 시작됩니다. 그러나 앱이 처음 시작될 때 사용자가 설정을해야합니다.다른 viewController에서 segue를 시작하십시오.
저는이 뷰어를 앱이 표시하는 첫 번째 viewController (또는 TVC)에서 시작하려고합니다. 그래서 SettingsTVC (segue가있는 곳)에 public 메소드를 만들었습니다. 내가 버튼을 클릭에 다음과 같이 최초의 ViewController에
-(void)setStuff{
[self performSegueWithIdentifier:@"setStuffFromSettings" sender:self];
}
:이 방법의 구현은 다음과 같습니다
[self.tabBarController setSelectedIndex:4];
SettingsTVC *settings=[[SettingsTVC alloc]init];
[settings setStuff];
Methos는 올바르게 호출되는 NSLogs에 따르면이 있지만, 앱에 오류가 발생하면 다음 메시지가 표시됩니다.
'Receiver (<SettingsTVC: 0x812d730>) has no segue with identifier 'setStuffFromSettings''
아마도 내가 너무 많이 기대합니까? 나는 꽤 복잡한 일을하기 때문에 또 다른 segue를 설정할 수는 없다. viewController를 여러 곳에서 액세스 할 수 없기를 바란다. (나는 애플이 그 중 하나를 좋아하지 않는다고 생각한다).
아이디어가 있으십니까? 미리 감사드립니다!
감사합니다.하지만 정확한 이름을 지정하고 참조해야합니다. 그게 내가 실수로 혼란에 빠졌던 이유입니다. 실제로 테스트로 segue가 발생한 viewController에 버튼을 추가하고 [self performSegueWithIdentifier : @ "setStuffFromSettings"sender : self]를 추가했습니다. 코드이며 작동합니다. 그것은 공용 메서드를 통해 다른 viewControler에서 시작하려고 할 때 작동하지 않습니다. – Marcal
그것은 UITableViewCell에 연결되어 있습니다 ... – Marcal
어떤 방식으로 연결했는지는 중요하지 않지만 항상 Segue 's를 VC에 연결 한 다음 didSelectRowAtIndexPath 메서드에서 performSegue를 호출합니다. 더 이상 도움이 필요하면 프로젝트를 압축하여 이메일로 보내거나 모든 Segue의 이름과 문제가있는 VC의 코드와 함께 스토리 보드 스크린 샷을 게시해야합니다. –