UINavigationController에 UITableViewController가 내장되어 있습니다.Dimissing TableViewController가 첫 번째 스토리 보드로 되감습니다.
자세히보기 (자세히보기가 UITabViewController에 있음)에서 버튼을 클릭하면 showList
으로 List라는 UITableViewController (목록 테이블보기)가 표시됩니다. 나는 대리자 메서드 didSelectFromList
가 didSelectRowAtIndexPath
에서 호출되는 목록 항목을 선택하면 블루 라인
로 표시 상세보기 : 나는 네비게이션 컨트롤러에 Back
버튼을 클릭하면 , 나는 올바른 화면을 다시 촬영하고있다 응용 프로그램은 빨간색 선으로 표시된 주 화면 (홈보기)으로 다시 이동합니다.
내가 원하는 것은 보라색 선입니다.
어떤 도움 ?
시도 1 :
나는 대리인이 목록 TableVC을 기각 할 수 있습니다. 목록 테이블 뷰 컨트롤러
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
///.. stuff to find the correct string
[self.delegate didSelectFromList:item];
}
시도 2에서
#import "ListTableViewController.h"
@interface CallDetailViewController() <ListTableViewControllerDelegate>
@property (nonatomic, strong) LotListTableViewController * lltvc;
@end
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"segue_list"]) {
self.lltvc = (ListTableViewController*)segue.destinationViewController;
self.lltvc.delegate = self;
}
}
- (void) showList {
[self performSegueWithIdentifier:@"segue_list" sender:self];
}
#pragma mark LIST SELECTION DELEGATE METHOD
- (void) didSelectFromList:(NSString *)item {
[self.lltvc dismissViewControllerAnimated:YES completion:^{
NSLog(@"Did Select item: %@", item);
}];
}
: 여기
나는 목록 TableVC 자체를 dimiss 수 있습니다. , 그들이 얻을 당신이보기 컨트롤러를 밀어 계속하는 경우 LIST 테이블 뷰 컨트롤러
#import "ListTableViewController.h"
@interface CallDetailViewController() <ListTableViewControllerDelegate>
@end
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if ([[segue identifier] isEqualToString:@"segue_lots"]) {
NSLog(@"GOING TO THE LOT LIST");
UINavigationController * nvc = (UINavigationController*)segue.destinationViewController;
LotListTableViewController *lltvc = [nvc childViewControllers][0];
lltvc.delegate = self;
}
}
- (void) showLotList {
[self performSegueWithIdentifier:@"segue_lots" sender:self];
}
#pragma mark LIST SELECTION DELEGATE METHOD
- (void) didSelectFromList:(NSString *)item {
NSLog(@"Did Select item: %@", item);
}
는
- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
///.. stuff to find the correct string
[self dismissViewControllerAnimated:YES completion:^{
[self.delegate didSelectFromList:item];
}];
}
나는 또한 목록 TableVC
[self.navigationController dismissViewControllerAnimated:YES completion:^{
[self.delegate didSelectFromList:item];
}];
detailVC에서 nav 컨트롤러를 푸는 대신 목록 테이블 VC가있는 nav 컨트롤러를 제공하십시오. 이 경우 [self.nav dismissviewCOntroller가 작동합니다. –
정답입니다. 나는 그것을 발표하는 대신 목록을 밀고 있었다. –