欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS應(yīng)用程序之間的幾種跳轉(zhuǎn)情況詳解

 更新時(shí)間:2016年09月28日 11:55:08   作者:鯤鵬DP  
這篇文章給大家詳細(xì)介紹了iOS應(yīng)用程序之間跳轉(zhuǎn)的幾種情況,包括跳轉(zhuǎn)到另一個(gè)程序的主界面、跳轉(zhuǎn)到另一個(gè)程序的指定界面以及如何從目標(biāo)程序的非主頁界面回到當(dāng)前(跳轉(zhuǎn)前)程序呢?有需要的朋友們可以下面來一起看看。

前言

在iOS開發(fā)的過程中,我們經(jīng)常會(huì)遇到比如需要從一個(gè)應(yīng)用程序A跳轉(zhuǎn)到另一個(gè)應(yīng)用程序B的場景。這就需要我們掌握iOS應(yīng)用程序之間的相互跳轉(zhuǎn)知識(shí)。下面我們就常用到的幾種跳轉(zhuǎn)情況進(jìn)行介紹。

一、跳轉(zhuǎn)到另一個(gè)程序的主界面

每個(gè)程序都該有一個(gè)對(duì)應(yīng)的Scheme,以確定對(duì)應(yīng)的url


一個(gè)程序要跳轉(zhuǎn)到(打開)另外一個(gè)程序,需要將另外一個(gè)程序的Scheme添加到自己的應(yīng)用程序白名單中(在info.plist中配置:LSApplicationQueriesSchemes,類型為數(shù)組,在數(shù)組中添加相應(yīng)的Scheme)->ios9.0開始


跳轉(zhuǎn)代碼

extension ViewController {

 @IBAction func jumpToXinWen(sender: AnyObject) {
  openURL("xinWen://")

 }
 private func openURL (urlString : String) {
  let url = NSURL(string: urlString)!
  if UIApplication.sharedApplication().canOpenURL(url) {
   UIApplication.sharedApplication().openURL(url)
  }

 }
}

二、跳轉(zhuǎn)到另一個(gè)程序的指定界面

完成上面程序間跳轉(zhuǎn)的相應(yīng)設(shè)置

實(shí)現(xiàn)跳轉(zhuǎn)代碼(與跳轉(zhuǎn)到主頁相比,url多了參數(shù),?前面參數(shù)是目標(biāo)程序想要跳轉(zhuǎn)界面的segu標(biāo)簽,?后面是當(dāng)前程序的scheme)

 // MARK: - 跳轉(zhuǎn)微信朋友圈
 @IBAction func jumpToWeChatTimeLine(sender: AnyObject) {
  openURL("WeChat://TimeLine?xinWen")

 }
 // MARK: - 跳轉(zhuǎn)微信好友
 @IBAction func jumpToWeChatSession(sender: AnyObject) {
  openURL("WeChat://Session?xinWen")

 }
 private func openURL (urlString : String) {
  let url = NSURL(string: urlString)!
  if UIApplication.sharedApplication().canOpenURL(url) {
   UIApplication.sharedApplication().openURL(url)
  }

在目標(biāo)程序AppDelegate中監(jiān)聽用來跳轉(zhuǎn)的相應(yīng)信息,根據(jù)這些信息讓目標(biāo)程序自己實(shí)現(xiàn)頁面切換

extension AppDelegate {
 //監(jiān)聽當(dāng)前程序被其他程序通過什么樣的Url打開
 func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject) -> Bool {
  //根據(jù)url跳轉(zhuǎn)對(duì)應(yīng)頁面
  //1.url轉(zhuǎn)化成字符串
  let urlString = url.absoluteString
  //2.獲取首頁控制器
  let rootVc = application.keyWindow?.rootViewController
  let mainVc = rootVc?.childViewControllers[0] as! ViewController
   //將url傳遞給mianVc
  mainVc.urlString = urlString
  //3.根據(jù)字符串內(nèi)容完成對(duì)應(yīng)跳轉(zhuǎn)
  if urlString.containsString("Session") {//跳轉(zhuǎn)好友
   mainVc.performSegueWithIdentifier("Session", sender: nil)
  }else if urlString.containsString("TimeLine") {//跳轉(zhuǎn)朋友圈
   mainVc.performSegueWithIdentifier("TimeLine", sender: nil)
  }
  return true
 }
}

三、如何從目標(biāo)程序的非主頁界面回到當(dāng)前(跳轉(zhuǎn)前)程序呢?

思路: 只要在目標(biāo)程序的非主頁界面知道跳轉(zhuǎn)前的程序的URL即可直接跳轉(zhuǎn),所以,這里的關(guān)鍵是如何將跳轉(zhuǎn)前的程序的URL傳遞到目標(biāo)程序的非主頁界面.

     在目標(biāo)控制器APPDelegate中能獲取到用來跳轉(zhuǎn)的URl信息的方法中將url傳遞給mianVC(事先定義好接收數(shù)據(jù)的屬性),如上面代碼所示.

     在mianVc 中將url傳遞給需要切換的控制器(事先定義好接收數(shù)據(jù)的屬性)

 //切換界面,需要來到該方法.能夠拿到切換前后的控制器
 override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

  if segue.identifier == "Session" {
   let sessionVc = segue.destinationViewController as! SessionViewController
   //傳遞數(shù)據(jù)
   sessionVc.urlString = urlString
  }
 }
}

在目標(biāo)控制器中根據(jù)url信息,獲取跳轉(zhuǎn)前控制器的scheme,從而得到跳轉(zhuǎn)回去的url.

class SessionViewController: UIViewController {

 //接收數(shù)據(jù)
 var urlString = ""
 override func viewDidLoad() {
  super.viewDidLoad()

  navigationItem.leftBarButtonItem = UIBarButtonItem(title: "退回跳前應(yīng)用", style: .Plain, target: self, action: #selector(backToStartApp))

 }

}
extension SessionViewController {
 func backToStartApp() {
  //分割Url,獲取跳轉(zhuǎn)前的程序的scheme

  let scheme = urlString.componentsSeparatedByString("?")[1]
  print(scheme)
  //拼接字符串
  let backString = "\(scheme)://"
  //打開url
  openURL(backString)
 }


 private func openURL (urlString : String) {
  let url = NSURL(string: urlString)!
  if UIApplication.sharedApplication().canOpenURL(url) {
   UIApplication.sharedApplication().openURL(url)
  }

 }

}

總結(jié)

以上就是關(guān)于iOS應(yīng)用程序之間跳轉(zhuǎn)的全部內(nèi)容,希望能對(duì)各位iOS開發(fā)者們有所幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • 蘋果公司推出的新編程語言Swift簡介和入門教程

    蘋果公司推出的新編程語言Swift簡介和入門教程

    這篇文章主要介紹了蘋果公司推出的新編程語言Swift簡介和入門教程,Swift是蘋果于WWDC 2014.6.3發(fā)布的編程語言,主要用來替代Objective-C,需要的朋友可以參考下
    2014-06-06
  • iOS中Sqlite和FMDB使用詳解

    iOS中Sqlite和FMDB使用詳解

    這篇文章主要為大家介紹了iOS中Sqlite和FMDB使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • iOS體驗(yàn)性優(yōu)化之RTL適配右滑返回的實(shí)現(xiàn)

    iOS體驗(yàn)性優(yōu)化之RTL適配右滑返回的實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于iOS體驗(yàn)性優(yōu)化之RTL適配右滑返回實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • IOS 獲取APP 版本號(hào)的實(shí)例詳解

    IOS 獲取APP 版本號(hào)的實(shí)例詳解

    這篇文章主要介紹了IOS 獲取APP 版本號(hào)的實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • iOS中設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間+模擬的方法詳解

    iOS中設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間+模擬的方法詳解

    這篇文章主要介紹了在iOS中設(shè)置網(wǎng)絡(luò)超時(shí)時(shí)間+模擬的方法,文中介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來跟著小編一起來學(xué)習(xí)學(xué)習(xí)吧。
    2017-04-04
  • iOS中UIAlertController設(shè)置自定義標(biāo)題與內(nèi)容的方法

    iOS中UIAlertController設(shè)置自定義標(biāo)題與內(nèi)容的方法

    UIAlertController是iOS8推出的新概念,取代了之前的 UIAlertView和UIActionSheet(雖然現(xiàn)在仍可以使用,但是會(huì)有警告)。下面這篇文章主要給大家介紹了關(guān)于iOS中UIAlertController如何設(shè)置自定義標(biāo)題與內(nèi)容的相關(guān)資料,需要的朋友可以參考下。
    2017-10-10
  • IOS中Json解析實(shí)例方法詳解(四種方法)

    IOS中Json解析實(shí)例方法詳解(四種方法)

    本文將介紹TouchJson、 SBJson 、JSONKit 和 iOS5所支持的原生的json方法,解析國家氣象局API。通過本文給大家介紹IOS中Json解析的四種方法,非常不錯(cuò),具有參考借鑒價(jià)值,感興趣的朋友一起學(xué)習(xí)吧
    2016-06-06
  • iOS讀取txt文件出現(xiàn)中文亂碼的解決方法

    iOS讀取txt文件出現(xiàn)中文亂碼的解決方法

    這篇文章主要為大家詳細(xì)介紹了iOS讀取txt文件出現(xiàn)中文亂碼的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS中l(wèi)ebel特殊字符的自動(dòng)換行問題解決

    iOS中l(wèi)ebel特殊字符的自動(dòng)換行問題解決

    這篇文章主要給大家介紹了關(guān)于iOS中l(wèi)ebel特殊字符的實(shí)現(xiàn)不自動(dòng)換行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)iOS具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-10-10
  • iOS圖片模糊效果的實(shí)現(xiàn)方法

    iOS圖片模糊效果的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了iOS圖片模糊效果的三種實(shí)現(xiàn)方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09

最新評(píng)論