1. 程式人生 > >使用storyboard的segue控制介面跳轉

使用storyboard的segue控制介面跳轉

一、segue分兩種:自動型和手動型,要注意的是,本文所講的都是在使用storyboard時的操作,如果使用程式碼搭建介面是沒有這些segue的
這裡寫圖片描述
segue的屬性:
這裡寫圖片描述
自動型:只要點選控制元件,segue就會自動從當前控制器介面跳轉到目標控制器介面,不會有任何判斷
這裡寫圖片描述
手動型:當點選源控制器的某個控制元件時,源控制器可以先判斷當前狀態是否滿足(例如賬號密碼是否正確),當滿足時可以手動執行跳轉,手動執行跳轉的方法是:

[self performSegueWithIdentifier:@"login2Contacts" sender:nil];

這裡寫圖片描述

二、 Scene之間的資料傳遞
1、順傳
這裡寫圖片描述


當你從當前 scene中觸發一個segue的時候,系統會自動呼叫prepareForSegue:sender:這個方法。如果你想從一個介面切換到裡另一個介面的時候傳遞資料,你應該override這個方法。
A—》B
想把資料 NSString A_data 從AController傳到BController,則在BController中
@property 一個NSString data
然後在AController中新增方法
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
NSLog(@”The segue id is %@”, segue.identifier );
UIViewController *destination = segue.destinationViewController;
if ([destination respondsToSelector:@selector(setData:)])
{
[destination setValue:@”這是要傳遞的資料” forKey:@”data”];
}
}
之後,Bcontroller中的data屬性,就接收到資料了。
這裡寫圖片描述

2、逆傳
這裡寫圖片描述

①先給目的控制器設定一個代理屬性:
這裡寫圖片描述

②再讓源控制器成為其代理:
這裡寫圖片描述
③在目的控制器中決定何時通知代理做事情:
這裡寫圖片描述

關於資料模型及工廠方法:
這裡寫圖片描述

注意:使用代理傳值的關鍵
這裡寫圖片描述

三、ViewController之間的跳轉
1、如果在 Storyboard中當前的 ViewController和要跳轉的ViewController之間的segue存在,則可以執行performSegueWithIdentifier:sender:這個方法實現跳轉。
2、如果目標ViewController存在Storyboard中,但是沒有segue。你可以通過UIStoryboard的instantiateViewControllerWithIdentifier:這個方法獲取到它,
這裡寫圖片描述

然後再用你想要的方式實現跳轉,如:壓棧。
3、如果目標ViewController不存在,那就去建立它吧。

相關推薦

使用storyboard的segue控制介面

一、segue分兩種:自動型和手動型,要注意的是,本文所講的都是在使用storyboard時的操作,如果使用程式碼搭建介面是沒有這些segue的 segue的屬性: 自動型:只要點選控制元件,segue就會自動從當前控制器介面跳轉到目標控制器介面,不

控制:1)調用別人接口;2)指定頁面

clas pin except ring void .get string 指定 test RESTFul 接口中調用重定向到指定 url @RequestMapping(value = "sso", method = RequestMethod.GET)

js 控制頁面的5種方法

js 控制頁面跳轉的5種方法 程式設計式導航:   點選跳轉路由,稱程式設計式導航,用js編寫程式碼跳轉。   History是bom中的 History.back是回退一頁 Histiory.go(1)前進一頁 History.go(-1)後退一頁 HandleCli

PYQT5登入介面介面方法

該問題,有很多種方法,但是很多方法要麼這個有問題,要麼那個有問題,最後終於找到一種沒問題的方法。記錄一下: 參考地址:https://www.jianshu.com/p/d18ff36a78d6?from=singlemessage   Login.py(登入視窗)檔案 import

android studio 通過左滑右滑螢幕實現介面

[原始碼下載]https://download.csdn.net/download/weixin_42415553/10826919 巨集觀來說;我要實現四個介面的跳轉name就需要四個類 分別繼`承Fragment 在這四個類中分別重寫onCreateView,新增如下程式碼 Vie

使用Fluro實現Flutter介面

練習介面跳轉以及回傳值   這個Fluro的使用文章有不少,但是說實話看不懂。不知道在說什麼,看完了也不知道怎麼用。還好人家作者提供了示例。theyakka/fluro的Github地址,下個示例耽誤不了多長時間,就知道咋使用了。而且人家跳轉動畫都是給寫好的,

android的activity介面解耦

【一般的介面跳轉方式如下】 Intent intent = new Intent(); intent.setClass(HelloworldActivity.this, NextActivity.class);// 這裡強引用了NextActivit

react-router 路由控制頁面

剛接觸react,路由使用的react-router 4.0。對於路由在頁面中的跳轉,使用了兩種方法 1,使用widthRouter,他是一個高階元件,他提供了history讓我們使用。 eg:返回上一個頁面,下面是我的實現程式碼。 import React,{Comp

runtime從入門到精通(九)—— 萬能介面

由於文章篇幅長度原因,筆者單獨用一篇文章來介紹使用runtime來實現萬能控制器跳轉。檢視完整的runtime在實際開發中的使用點選連結 ——> runtime從入門到精通(六)—— runtime在實際開發中的應用 在你的開發過程中,是否遇到過如下的

JS彈出框、對話方塊、提示框,JS關閉視窗、關閉頁面和JS控制頁面

1. RequestDispatcher.forward() 在伺服器端起作用,當使用forward()時,Servlet engine傳遞HTTP請求從當前的Servlet或者是JSP到另外的一個Servlet、JSP 或普通HTML檔案,也即你的form提交至a.jsp,在a.jsp用到了forw

iOS介面的一些優化方案

App應用程式開發, 介面跳轉是基礎中的基礎, 幾乎沒有一個App是用不到介面跳轉的, 那麼怎麼樣去書寫介面跳轉程式碼才是比較合理的呢? 大家可能在想跳轉無非就2種方式, 能有什麼內容? 其實並不是這樣子的, 對於研發老手來說, 大型應用幾乎都是利用URLSc

android 仿 ios 搜尋介面效果

最新寫專案的時候,看到搜尋介面的跳轉基本都是點選搜尋然後跳轉到下個頁面,android 微信上則是 類似toolbar的效果,而ios 上則是一個搜尋框上移然後顯示新介面的一個效果。仔細研究了下發現和android 的 共享元素的過渡實現 的效果很像,所以在此模

Ubuntu 虛擬機器一直在登陸介面

問題原因:1.環境變數有問題;2.記憶體給多了,都有可能產生以上問題!! 解決方案: 1.針對環境變數問題: 由於最開始是 vim /etc/profile 來編輯環境變數的,這種方式會有問題 最佳的配置環境變數的方式是:在/etc/pr

Jsp頁面和js控制頁面的幾種方法

Jsp 頁面跳轉的幾種方法 1. RequestDispatcher.forward() 在伺服器端起作用,當使用forward()時,Servlet engine傳遞HTTP請求從當前的Servlet或者是JSP到另外的一個Servlet、JSP 或普通HTML檔

根據牛腩老師的mono for android 視訊,自己用vs2017的xamarin for android高仿了一個登入介面介面的程式

//定義四個控制元件         private Button btn_visit;         private Button btn_login;         private Button btn_cancel;         private EditText txt_name;      

java swing 登陸介面+介面

package Example; /** * @author: * @function:使用者登入介面實現,跳轉到監測資料介面 */ import java.awt.Font; import java.awt.Image; import java.awt.event.ActionEvent; impor

iOS和Unity互動之介面

本文介紹了iOS和Unity互動,主要涉及兩個介面之間的跳轉. 如果對iOS和Unity互動傳參方法不熟悉的朋友,可以參考我的另一篇文章 iOS和Unity互動之引數傳遞 一.程式啟動入口. main.mm 瞭解OC或者C的朋友一定

iOS開發-使用Storyboard進行介面及傳值

前言:蘋果官方是推薦我們將所有的UI都使用Storyboard去搭建,Storyboard也是一個很成熟的工具了。使用Storyboard去搭建所有介面,我們可以很迅捷地搭建出複雜的介面,也就是說能為我們節省大量的時間。我們還可以很直觀地看出各個介面之間的關係,修改起來也很方便。將來如果遇到需要作修改的地

angular 介面點選兩次才展示

最近首次使用$location.path時,出現了一個問題,就是改變路徑後 $location.path('/result') 需要點選兩次後才會跳轉。 解決辦法: 在後面加上$scope.$ap

android 如何能使介面到系統網路設定介面

Setting的原始碼是在AndroidManifest.xml中設定的 寫在<application>標籤裡,如下: <PreferenceScreen android:title="@string/radio_con