objective-c - 关于iOS页面间的跳转。
PHPz
PHPz 2017-04-17 17:24:51
0
2
283

做了款跑步的app,其中部分页面的逻辑如上图。
我再开始跑步页面和跑步中的页面跳转中用的push方式,跑步中页面到跑步暂停模式,再到成果分享这个页面全部都使用的model方式,调用的presentModalViewController方法。
请求,如果我想从分享成果直接返回到开始跑步界面,可不可以连续调用两次dismissViewControllerAnimated和一次nav的pop从而实现?
如果有其他方式可以完成这个逻辑,求告知!

【ps:(暂停→跑步)这个箭头忘记画了】

PHPz
PHPz

学习是最好的投资!

모든 응답(2)
Ty80

dismissViewControllerAnimated 을 두 번 호출할 필요가 없습니다. 跑步中VCNavigationControllerPOP을 호출하고 跑步中VC을 팝업시켜 한 번에 세 명의 VC를 릴리스하도록 하면 됩니다.

원칙은 아시겠지만 跑步中VC의 브랜치(자식 VC)와 동일하게 실행 일시 정지와 실행 결과 공유가 제시되므로 상위 VC가 팝업되면 모두 팝업됩니다.

두 개의 VC 레이어가 있는 跑步成果分享에서 跑步中VC 메서드를 역으로 호출하는 방법을 모른다면 다음과 같은 몇 가지 옵션이 있습니다.

  1. 알림센터 이용하기NSNotificationCenter 최후의 수단이 아닌 경우 코드를 불명확하게 만들고 이해하기 어렵게 만들 수 있으므로 너무 많이 사용하지 않는 것이 좋습니다

  2. 프로토콜 콜백 델리게이트, 기존 방식, 조금 더 번거로움

  3. 分享跑步成果VC에서 [[self presentingViewController] presentingViewController]跑步中VC입니다. 이미 이해하셨으리라 믿습니다.

행운을 빕니다.

PS
얘야, 내가 계산을 잘못한 줄 알았어요.

사실 위에서 말씀드린 내용은 맞지만 跑步中VC에는 navigationController도 없습니다.

그의 상위 노드만이

그래서 다시 조정해야겠네요 presentingViewController

左手右手慢动作

presentModalViewController方法 iOS7부터 지원 중단되었습니다! presentViewController:animated:completion 이 방법이군요!

NavigationController 레벨의 VC는 popToViewController 메서드를 통해 지정된 VC로 점프할 수 있지만, 현재 형식을 통해 열린 모달 스타일 VC는 dismissModalViewController을 통해서만 사라질 수 있습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿