나는 Stackoverflow에서 비슷한 질문을 많이 보았고 많은 일을 시도했지만이 사실을 알 수없는 것 같습니다. 여러 TableViewControllers 및 1 MainViewController 있습니다. MainViewController는 다른 TableViewController를 호출하는 버튼을 가지고 있으며, tableViewController가 해제하는 tablecell을 선택하면됩니다.Xcode/Obj-c - Segue가 새로운 인스턴스를 푸시
문제점은 내 tableViewController 중 하나에서 푸시 할 때마다 내 MainViewController의 새 인스턴스를 푸시하는 것이 문제입니다. 현재 Segues를 사용하여 다른 컨트롤러 사이를 밀고 있습니다.
요약 : TableViewControllers에서 ViewController로 전환 할 때 이전의 데이터 입력을 제거하기 때문에 ViewController가 새 인스턴스로 푸시되지 않도록하고 싶습니다. 클래스에
[self dismissModalViewController: withCompletion:]
performSegue
prepareForSegue
또는 설정 일부 글로벌 변수와 그 부르지 만 올바르게 구현 아직 충분히 경험하지 메신저 :
임 확신 내가 하나를 사용해야합니다.
최종 결과의 간단한 예는 다음과 같습니다. VC의 텍스트 필드 3 개. textfield1을 클릭하면 tableview1이 열리고 셀을 클릭하면 textfield1이 업데이트됩니다. Textfield2는 tableview2 등을 엽니 다.
희망이 있다면, 필요한 경우 샘플 코드를 게시 할 수 있습니다.
편집, 코드를 게시 (명심를 segues는 스토리 보드에서 수행됩니다) : TableViewExample.h을 :
@interface IndustryViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {
NSArray *tableViewArray;}
@property (nonatomic, strong) IBOutlet UITableView *tableViewIndustry;
TableViewExample.m : 다음
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"showIndustry"]) {
NSIndexPath *indexPath = [self.tableViewIndustry indexPathForSelectedRow];
ViewController *destViewController = segue.destinationViewController;
destViewController.industryText = [tableViewArray objectAtIndex:indexPath.row];
destViewController.industryTextName = [tableViewArray objectAtIndex:indexPath.row];
}}
ViewController.m,있는 viewDidLoad에서 :
[industry setTitle:industryText forState:UIControlStateNormal];
내가 생각하기에 가장 중요한 부분이다.
yor code를 게시하십시오. – Kasaname
어떤 종류의 Segue를 사용하고 있습니까? '모달'? –
더 자세한 정보가 필요하면 알려주세요. – Tarayaa