1. 程式人生 > >ios中幾種跳轉方式,普通,和StoryBoard跳轉

ios中幾種跳轉方式,普通,和StoryBoard跳轉

一、純程式碼介面跳轉方式
    1.導航控制器(UINavigationController)
    [self.navigationController pushViewController:NewVC animated:YES];//跳轉到下一介面
    [self.navigationController popViewControllerAnimated:YES];//返回上一介面
    2.使用模態彈出的方式(UIViewController)
    [self presentViewController:NewVC animated:YES completion:nil];//present到下一介面
    [self dismissViewControllerAnimated:YES completion:nil];//推出
    3.StroryBoard的連線跳轉程式碼實現,首先在storyBoard上建立兩個檢視,中間用線連線,選中中間的線段設定線的Identifider
     [self performSegueWithIdentifier:@"NewVC" sender:nil];
    //傳值方式
    - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
    //通過segue判斷要跳轉到哪個頁面
    if ([segue.identifier isEqualToString:@"NewVC"]) {
        XXXController * destinaVC = segue.destinationViewController;
    }
}
    跳轉到目標檢視之後返回根據UINavigationController和UIViewController判斷,可以根據情況自定返回方式
二、StoryBoard介面跳轉
    1.storyboard生成ViewController並新增按鈕+storyboard中Action Segue使用modal跳轉到另一個storyboard生成的ViewController;-->正常,可以進行跳轉
    2.storyboard生成ViewController並新增按鈕+storyboard中在第一個ViewController中生成導航欄+storyboard中Action Segue使用push跳轉到另一個storyboard生成的ViewController;-->正常,可以進行跳轉,並可以使用導航欄自帶的返回按鈕返回上一個頁面
    3.storyboard生成ViewController並新增按鈕+storyboard中不新增任何導航欄+使用presentViewController跳轉到另一個xib生成的ViewController;-->正常,可以進行跳轉
    4.storyboard生成ViewController並新增按鈕+storyboard中新增導航欄+使用pushViewController跳轉到另一個xib生成的ViewController;-->正常,可以進行跳轉,並可以使用導航欄自帶的返回按鈕返回上一個頁面
    5.xib生成ViewController並新增按鈕+程式碼生成導航欄(重點)+使用pushViewController跳轉到另一個xib生成的ViewController;-->正常,可以進行跳轉,並可以使用導航欄自帶的返回按鈕返回上一個頁面

三、
    //系統的方法
    + (UIStoryboard *)storyboardWithName:(NSString *)name bundle:(nullable NSBundle *)storyboardBundleOrNil;

- (nullable __kindof UIViewController *)instantiateInitialViewController;
- (__kindof UIViewController *)instantiateViewControllerWithIdentifier:(NSString *)identifier;
    1.獲取第一個檢視storyBoard
    /* 載入名為storyboardName的Storyboard */
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle:nil];
    
    /* 獲取storyboard的InitialViewController 即根控制器*/
    FirstViewController *vc = [storyboard instantiateInitialViewController];
    其中UIViewController可以根據當前檢視進行替換,替換成StoryBoard對應的檢視類,然後選擇跳轉方式
    2.獲取第二個檢視storyboard的某個檢視控制器的時候使用
     SecondViewController *VC= [storyboard instantiateViewControllerWithIdentifier:@"NewVC”];(這個過程需要在StoryBoard中設定目標檢視的Custom Class和StoryBoard ID)
    //跳轉事件的實現
    在第一個檢視新增按鈕跳轉到第二個檢視
    [self.navigationController pushViewController:VC animated:YES];(第一個檢視是帶有導航欄的)
    2.XIB載入
    NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"View1" owner:nil options:nil];
    UIView *v = [views lastObject];
    CGRect r = v.frame;
    r.origin.y += 80;
    v.frame = r;
    [self.view addSubview:v];
    關於Xib載入方式具體:http://www.cocoachina.com/ios/20150202/11086.html

相關推薦

ios方式,普通StoryBoard

一、純程式碼介面跳轉方式     1.導航控制器(UINavigationController)     [self.navigationController pushViewController:NewVC animated:YES];//跳轉到下一介面     [self.navigationContro

SQL Server遍歷方式比較

不同 .com font size 常用 分享 分享圖片 遊標 inf SQL遍歷解析   在SQL的存儲過程,函數中,經常需要使用遍歷(遍歷table),其中遊標、臨時表等遍歷方法很常用。面對小數據量,這幾種遍歷方法均可行,但是面臨大數據量時,就需要擇優選擇,不同的遍歷方

C++測試程序運行時間的方法<>

begin html cnblogs bsp 可能 boost庫 www. rman 高精 轉的地址:https://www.cnblogs.com/silentteen/p/7532855.html 1.GetTickCount()函數 原理: GetTickCoun

iOS開發————音訊播放方式

這篇同樣是編者對自己學習的小總結以及對iOS初級開發者的小福利,大神莫吐槽... 首先來談談AVFoundation框架:它是iOS中用於處理基於時間的媒體資料的高階框架,也是基於Core Audio,Core Media,Core Video等框架構建的,充分利用了多核硬

Asp.net 檔案下載方式

C# code ASP.NET檔案下載 //TransmitFile實現下載 protected void Button1_Click(object sender, EventArgs e) { /* 微軟為Response

學習筆記---PHP加密演算法(MD5shalbase64_encode等)

PHP中有多種加密演算法。 1.md5()—–不可逆,無解密演算法 md5(string $str[,bool $raw_output = false|true]); 引數: $str:待加密的字串 $raw_output:可選引數為true或

iOS開發-79】利用Modal方式實現控制器之間的

article 運用 mis cli 控制 present 沒有 dismiss 導航控制器 利用Modal方法。事實上就是以下兩個方法的運用。Modal方式的切換效果是從底部呈現。 -(void)clickModal{ WPViewController *wp

EntityFramework更改數據的方式

結構 tac pro partial 數據庫 修改表 tle 狀態 代碼 首先聲明個實體類,該實體類是EntityFrameWork自動生成的,對應數據表Test結構如下 public partial class Test { public i

RestTemplate常見的請求方式

see 信息 book ren new 三個參數 body turn 表示 GET請求 第一種:getForEntity getForEntity方法的返回值是一個ResponseEntity<T>,ResponseEntity<T>是Spring對

aiax的請求過程以及在jquery常用使用方式

在Java後端專案的開發過程中,由於涉及前端相關的東西,會經常遇到ajax請求的形式,學習一下,可以在開發後端的過程中更加的流暢。 ajax:Asynchronous JavaScript and XML 1、原始方法請求 function load(){    

Makefile賦值方式

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

web前端之網頁預設圖片的解決方式

現在網頁中圖片隨處可見,但避免不了有時會出現圖片資源失敗的情況,在谷歌瀏覽器中就會顯示這樣 這裡的alt屬性是為了當圖片載入失敗時告訴使用者圖片資訊的 能不能美化一下呢? 下面給出幾種方式 js 方式 相信大家碰到這種問題是,搜尋的結果一般都是用圖片的onerror

IOS初學-檢視控制器的方式 入棧出棧

新建專案。建立ThreeSubViewController檢視控制器 在ThreeSubViewController中定義一個全域性變數記錄編號 //記錄 檢視控制器編號的全域性變數 var pageNum=0; 控制器中每建立一次。增加一次編號。定義四個button新增到根檢視總

Java代理實現的方式

package javasisst; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; impor

iOS開發之如何通過路由方式進行頁面間的

在你的開發過程中,是否遇到過如下的需求: 在tableView型別的展示列表中,點選每個cell中人物頭像都可以跳轉到人物詳情,可參見微博中的頭像,同理包括轉發、評論按鈕、各種連結及linkcard。 跳轉到任意頁面 產品要求,某個頁面的不同banner圖,點選可以跳轉

HTML為繫結點選事件的方式比較

HTML中為button繫結事件的方式有三種。 例如以下標籤: <button type="submit" id="btn_submit"> submit </button>

Android網路請求方式詳解

Android應用經常會和伺服器端互動,這就需要手機客戶端傳送網路請求,下面介紹四種常用網路請求方式,我這邊是通過Android單元測試來完成這四種方法的,還不清楚Android的單元測試的同學們請看Android開發技巧總結中的Android單元測試的步驟一文。 java

Java常見的編碼方式

幾種常見的編碼格式  為什麼要編碼  不知道大家有沒有想過一個問題,那就是為什麼要編碼?我們能不能不編碼?要回答這個問題必須要回到計算機是如何表示我們人類能夠理解的符號的,這些符號也就是我們人類使用的語言。由於人類的語言有太多,因而表示這些語言的符號太多,無法用計算機中一個基本的

oracle 資料庫連線方式執行過程(nested loop、hash join、sort order join)

簡單介紹了一下oracle 各種連線方式的執行過程,虛擬碼內容來源於pro oracle sql。 nested loop: select empno, ename, dname, loc fro

iOS頁面間傳值方式

傳值方法 屬性 方法 代理 block 通知 單例 頁面間傳值有八大傳值方式,下面我就簡單介紹下頁面間常用的傳值方式,但對於每種方式的詳細介紹由於內容很多,我會把每種方式單獨列出作為一篇文章詳細介紹,本文不做詳細說明 屬性傳值 第二個介面(Det