내 모든보기 컨트롤러는 탭 막대 컨트롤러를 사용하여 연결되며 잘 작동합니다. 내 유일한 문제는 popover가 표시되어 적절한 상황에서 다른보기 컨트롤러로 사용자를 보낼 수없는 경우입니다. 나는 몇 가지 관련 코드를 여기에popover의 unwind segue를 통해 tabbarcontroller를 사용하여보기로 이동하는 방법
tabBarController.selectedIndex = 1
입니다 사용하여 시도 :
픽업에 대한 팝업이 트리거 어디//user selects a row this function triggers an event
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == self.tableviewlineneeds
{
forklift.paramneeds = "\(forklift.k)&f=\(forklift.forkliftid)&id=\(forklift.needuniqueid[(indexPath as NSIndexPath).row])&o="
let popneeds = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "verifyneedsaction") as! NeedsActionPopover
popneeds.modalPresentationStyle = UIModalPresentationStyle.popover
popneeds.popoverPresentationController!.delegate = self
popneeds.popoverPresentationController?.permittedArrowDirections = .any
popneeds.popoverPresentationController?.sourceView = tableviewlineneeds
popneeds.popoverPresentationController?.sourceRect = tableviewlineneeds.rectForRow(at: indexPath)
popneeds.preferredContentSize = CGSize(width: 225, height: 180)
popneeds.needitem = forklift.itemneeds[(indexPath as NSIndexPath).row]
self.present(popneeds, animated: true, completion: nil)
}
if tableView == self.tableviewlinepickup
{
forklift.parampickup = "\(forklift.k)&f=\(forklift.forkliftid)&id=\(forklift.pickupuniqueid[(indexPath as NSIndexPath).row])&o="
let poppickup = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "verifypickupaction") as! PickupActionPopover
poppickup.modalPresentationStyle = UIModalPresentationStyle.popover
poppickup.popoverPresentationController!.delegate = self
poppickup.popoverPresentationController?.permittedArrowDirections = .any
poppickup.popoverPresentationController?.sourceView = tableviewlinepickup
poppickup.popoverPresentationController?.sourceRect = tableviewlinepickup.rectForRow(at: indexPath)
poppickup.preferredContentSize = CGSize(width: 300, height: 180)
forklift.pickuplocation = forklift.locationpickup[(indexPath as NSIndexPath).row]
poppickup.pickupitem = forklift.itempickup[(indexPath as NSIndexPath).row]
self.present(poppickup, animated: true, completion: nil)
}
}
. 여기 언 와인드 SEGUE입니다 :
@IBAction func unwindLinePickup(_ segue: UIStoryboardSegue)
{
if segue.identifier == "confirm"
{
switch forklift.pickuplocation
{
case "Line 2":
self.sendToMoveView()
case "Line 3":
self.sendToMoveView()
case "Line 7":
self.sendToMoveView()
case "Line 8":
self.sendToMoveView()
default:
API.HTTPCall(forklift.parampickup, url: forklift.postmove!, method: "POST", int: 10)
}
}
}
이 스캐너 뷰 컨트롤러에 보내 내 기능입니다 : 내 viewDidAppear 재정과 같은 장소에서 tabBarController.selectedIndex를 사용하여 시도
func sendToMoveView()
{
guard let tabBarController = tabBarController else { return }
tabBarController.selectedIndex = 1
}
기본 또는 레이아웃 하위보기를 설정하는 데 사용되며 AppDelegate에서 사용하기 전에 기본보기를 설정했습니다. 그렇다면 VC에서 다른 방법으로 탐색하면 탭 막대가없는 VC가 생기기 때문에이 상황에서 사용하려면 어떻게해야합니까? (감사합니다.)