내 응용 프로그램에서 UIViewController
"ProfilVC
"은 UINavigationController
"nav
"의 일부입니다.현재 UIViewController가 UINavigationController의 일부인지 확인하는 방법
하지만 다른 장면에서는 을 제시하여 "ProfilVC
"을 사용하여 동일한 데이터를 재사용 할 수 있지만 다른 데이터를 사용합니다. didSelectRowAt
내
let vc = tweetsStb.instantiateViewController(withIdentifier: "ProfilVC") as! ProfilVC
self.present(vc, animated: true, completion: nil)
, 나는 또 다른 UIViewController
을 제시하고있다. 그리고 여기에서 self
(ProfilVC
)이 현재 nav
의 일부인지 또는 맨 위에 표시되는지 확인해야합니다. ProfilVC
이 nav
의 일부인 경우
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let vc = tweetsStb.instantiateViewController(withIdentifier: "TweetCommentsVC") as! TweetCommentsVC
let post = tweets[(indexPath as NSIndexPath).section]
let cell = tableView.cellForRow(at: indexPath) as! TweetPostCell
vc.commentCounterString = cell.commentLabel.text!
vc.post = post
vc.avatare = avatare
nav?.present(vc, animated: true, completion: nil)
}
이 코드는 완벽하게 작동합니다.
ProfilVC
이 맨 위에 표시되면 self.present(vc, animated: true, completion: nil)
이 필요합니다. ProfilVC
항상 nav
의 일부임을,
if(nav?.topViewController?.isKind(of: ProfilVC.self) != nil) {
nav?.present(vc, animated: true, completion: nil)
} else {
self.present(vc, animated: true, completion: nil)
}
이 코드의 문제는 : 내가 필요로 무엇
이 같은 것입니다. ProfilVC
/"self"
/"현재 표시되는 것"이 nav
의 일부인지 아니면 맨 위에 표시되는지 확인해야합니다.
원하는 것을 달성하는 가장 좋은 방법은 무엇입니까? 도움말은 매우 감사하겠습니다.
PS : 나는 nav
이 case to overlapp the UINavigationBar에 ProfilVC
을 필요로하기 때문에 nav
내 ProfilVC
의 두 번째 인스턴스를 제시 아무 옵션입니다.
적어도 아래의 의견에 관심이 있으십니까? –