1. 程式人生 > >ViewController跳轉的三種方式的混合使用

ViewController跳轉的三種方式的混合使用

//新增一個BaseNavigation,可以從不同介面跳轉到同一個介面,同一個介面的回退方式:

self.dismissViewControllerAnimated(true, completion:nil)

import Foundation

import UIKit

@objc

class BaseNavigationController: UINavigationController {

    var childCtr: UIViewController?

    override func viewDidLoad() {

self.navigationBar.hidden =

true

        if let ctr =childCtr {

self.addChildViewController(ctr)

        }

    }

    override func popViewControllerAnimated(animated: Bool) -> UIViewController? {

ifself.childViewControllers.count ==1 {

dismissViewControllerAnimated(true, completion:nil)

            return nil

        }else

{

returnsuper.popViewControllerAnimated(animated)

        }

    }

    func addBasicChildViewController(ctr: UIViewController) {

        self.childCtr = ctr

    }

}

//頂部狀態列的顏色

import Foundation

import UIKit

class BaseLightNavigationController: BaseNavigationController {

    override func preferredStatusBarStyle() -> UIStatusBarStyle

{

returnUIStatusBarStyle.LightContent

    }

}


//animated:時候開啟動畫效果

let ctr = UIStoryboard(name:"LogIn_6p", bundle:nil).instantiateViewControllerWithIdentifier("loginMyselfNavigationController_6p")as!UINavigationController

let navController = BaseLightNavigationController()

navController.childCtr = ctr

self.presentViewController(navController, animated:true, completion:nil)

//pushViewController跳轉方式禁用,presentViewController跳轉方式是新開一個棧,對應返回是

self.navigationController?.dismissViewControllerAnimated(true, completion: nil)

,

showViewController在已有的棧上跳轉,對應的返回是

返回根頁面vc用 :

?
1 [self.navigationController popToRootViewController]

返回指定的某個vc用下面(通過index定位) 

?
1 [self.navigationController popToViewController:[self.navigationController.viewControllers objec

相關推薦

微信小程式頁面方式

為了不讓使用者在使用小程式時造成困擾,微信小程式規定頁面路徑只能是五層,請儘量避免多層級的互動方式。 頁面跳轉的話就涉及到了多個頁面層級 第一種:wx.navigateTo(OBJECT) 保留當前頁面,跳轉到應用內的某個頁面,使用wx.navigateB

Android 隱士方式

1、只有 配置 action 進行跳轉 <intent-filter> <action android:name="testarouter"></action> <category android:name="android.i

web頁面方式詳解

在做web開發中,頁面跳轉的方式有很多種,然而有些時候這些跳轉如何用到恰到好處卻很容易被忽視。 客戶端觸發跳轉有如下幾種 使用meta元資訊 ? 1 2 <!--如下表示

ViewController方式混合使用

//新增一個BaseNavigation,可以從不同介面跳轉到同一個介面,同一個介面的回退方式: self.dismissViewControllerAnimated(true, completion:nil) import Foundation import U

ViewController的異同

沒有 PE addchild elf ase 事情 控制器 warning 優點 - (void)presentViewController:(UIViewController *)viewControllerToPresent animated:(BOOL)flag co

SpringMVC頁面方式

                                  SpringMVC頁面跳轉的三種方式   一

android-Scheme與網頁原生的方式

什麼是 URL Scheme? android中的scheme是一種頁面內跳轉協議,是一種非常好的實現機制,通過定義自己的scheme協議,可以非常方便跳轉app中的各個頁面;通過scheme協議,伺服器可以定製化告訴App跳轉那個頁面,可以通過通知欄

php程式開發之實現網頁方式

PHP目前是用來開發WEB專案的首選語言。Web專案中,從一個網頁跳轉到另一個網頁是最常用的技術之一。使用者單擊連結、按鈕或者系統邏輯等等都需要實現頁面跳轉。 本文介紹PHP開發中常用的實現頁面自動跳轉的方法。 方式一:header()實現301重定向 <?ph

ViewController的異同(兩場動畫的實現待總結)

三種viewctroller跳轉時的轉場動畫實現也不同。導航檢視控制器的為系統預設。present和addChildViewController的方式的轉場,前者可以用轉場動畫協議來實現,後者的轉場動畫可以用transitionFromViewController:toV

容器間通信的方式 - 每天5分鐘玩 Docker 容器技術(35)

docker 容器 教程 容器之間可通過 IP,Docker DNS Server 或 joined 容器三種方式通信。IP 通信從上一節的例子可以得出這樣一個結論:兩個容器要能通信,必須要有屬於同一個網絡的網卡。滿足這個條件後,容器就可以通過 IP 交互了。具體做法是在容器創建時通過 --net

估計高斯混合模型參數的方式

als .so ons die from ssi object sqrt int 對於如下的兩類別的高斯混合模型 \[ \pi\cdot N(\mu_1,\sigma_1^2)+(1-\pi)\cdot N(\mu_2,\sigma_2^2) \] 參數為\(\theta

)Linux中設置服務自啟動的方式

情況下 level httpd sysv kconfig clas mage com ssh 有時候我們需要Linux系統在開機的時候自動加載某些腳本或系統服務 主要用三種方式進行這一操作: ln -s 在/etc/rc.d/rc

Django objects的查詢結果化為json的方式

第一種方式:利用seriallizers這個方法,官網的解釋說:將複雜的資料結構變成json、xml或者其他的格式 import json from django.core import serializers def area2(request,id): data = {} provin

vue+element ui專案總結點(一)select、Cascader級聯選擇器、encodeURI、decodeURI碼解碼、一級mockjs用法、路由懶載入方式

不多說上程式碼: <template> <div class="hello"> <h1>{{ msg }}</h1> <p>Element UI簡單Cascader級聯選擇器使用</p> <

vue+element ui項目總結點(一)select、Cascader級聯選擇器、encodeURI、decodeURI碼解碼、一級mockjs用法、路由懶加載方式

數據 .post emp scope req set cit query sel 不多說上代碼: <template> <div class="hello"> <h1>{{ msg }}</h1>

:vue.js 方式安裝(vue-cli)

版權宣告:本文為博主原創文章,未經博主允許不得轉載。    https://blog.csdn.net/muzidigbig/article/details/80490884        Vue.j

vue.js 方式安裝(

的版本號,則說明你安裝成功了。                             npm包管理器,是整合在node中的,所以安裝了node也就有了npm,直接輸入 npm -v 命令,顯示npm的版本資訊。                       

檔案操作 -- Xml化成Json的方式

Xml轉化成json的三種方式: 方法一: 使用json-lib框架, 需要的依賴包比較多 1 、這裡通過Class的getResourceAsStream方法獲得指定檔案的輸入流,這裡指定引數沒有帶/,表示Test類與xml檔案在同一級目錄下,如果有/那麼是從根目錄

方式YUV420RGB24/BGR24,實測可用

YUV420轉換為RGB24/BR24 YUV格式具有亮度資訊和色彩資訊分離的特點,但大多數影象處理操作都是基於RGB格式。 因此當要對影象進行後期處理顯示時,需要把YUV格式轉換成RGB格式。 RGB與YUV的變換公式如下: YU

iOS ViewController介面的幾方法簡單總結

涉及到的類詳解: UINavigationBar :繼承至UIView,NavigaitonBar就是導航欄,位於螢幕的上方,管理整個NavigationController的navigationItem,即類似navigationcontroller一樣提供了一個棧來管理item。 UINavigatio