iOS Tricks

展现下一个ViewController

  1. PerformSegue()

    func mapView(_ mapView: MKMapView, didSelect view: MKAnnotationView){
        performSegue(withIdentifier: "pinToAttendeeView", sender: nil)
    }
    
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "pinToAttendeeView"
        {
            // Get reference to the destination view controller
            let destViewController  = segue.destination as! AttendeeMapViewController
            // Set the property to the selected location so when the view for
            // detail view controller loads, it can access that property to get the feeditem obj
            destViewController.selectedLocation = selectedLocation
        }
    }
    
  2. Present() with UIApplication + instantiateViewController()

    let rootVC = UIApplication.shared.keyWindow?.rootViewController
            let searchController = rootVC!.storyboard!.instantiateViewController(withIdentifier: "TabBarController") as! TabBarController
            self.present(searchController, animated: true, completion: nil)
    
  3. Present() with storyboard + instantiateViewController()

    let mainStoryboard = UIStoryboard(name: "Main", bundle: Bundle.main)
        guard let machineDetailVC = mainStoryboard.instantiateViewController(identifier: "MachineDetailViewController") as? ViewController else {
            print("Couldnt find such VC")
            return
        }
    
  4. Present() with init()
    But this means IBOutlet wont be connected cuz ur not using storyboard or identifier. So you should create UI by code. Maybe outdated StackOverflow

    present(SomeViewController(), animated: true, completion: nil)
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值