1. 程式人生 > >swift UI專項訓練42 用Swift程式碼實現頁面跳轉與傳值

swift UI專項訓練42 用Swift程式碼實現頁面跳轉與傳值

   之前我們做過如果要點選一個按鈕實現跳轉到另一個按鈕的辦法,有時候我們需要通過一些動作來觸發頁面的跳轉,比如搖動手機,這樣就不能直接用連線的辦法來實現跳轉了,那麼如何通過程式碼的方式來實現跳轉呢?依舊使用過渡的方法,在storyboard中把要實現跳轉的兩張頁面連線,注意不再侷限於按鈕等確定的實體和另一張頁面連線,只要跳轉關係是從一張到另一張,把兩張頁面連起來即可,連線選擇show,這裡就不演示了,注意一定要給這個seuge取一個名字,因為後面要遇到,這裡取名showDetail


。比如我現在需要通過搖動手機來實現跳轉,在第一張頁面中重寫以下方法:

override func shouldPerformSegueWithIdentifier(identifier: String?, sender: AnyObject?) -> Bool {
               if  self.showArray.count != 0 && self.markpoint != 0//你自己的判斷條件
                { return true } else {
                return false
                }
        
    }

  上面這個方法來判斷是否可以進行頁面跳轉,在其中加入我們自己的判斷條件。

  然後在捕獲搖動手機動作的方法中(如果不懂這個捕獲的程式碼,可以看我前面寫的文章,有介紹)加入我們的判斷跳轉條件,如果為真實現跳轉,如果不滿足跳轉條件,給出你自己的警告:

override func motionEnded(motion: UIEventSubtype, withEvent event: UIEvent) {
        if motion == UIEventSubtype.MotionShake
        {
            if markpoint == 1 && self.searchpoint == false{  //不能跳轉,給出警告
        var alertController1 = UIAlertController(title: "沒有符合條件的菜品!", message: nil, preferredStyle: .Alert)
            var cancelAction = UIAlertAction(title: "返回", style: .Cancel, handler: nil)
            alertController1.addAction(cancelAction)
              self.presentViewController(alertController1, animated: true, completion: nil)
            }
            if self.searchpoint == true{ //可以跳轉
            self.performSegueWithIdentifier("showDetail", sender: self)//跳轉到下一個頁面,識別“showDetail”
            }
           
        }
    }

實現跳轉主要使用了performSegueWithIdentifier方法。如果要傳輸局,使用方法prepareForSegue,我的程式碼如下:
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        
        if segue.identifier == "showDetail"  {
            let destinationController = segue.destinationViewController as ShowTableViewController
            destinationController.navigationItem.title = "搖到的菜"
            destinationController.tempCaipin = self.showArray //傳值
        }
        
    }

第一個頁面:


搖動手機後跳轉:


相關推薦

swift UI專項訓練42 Swift程式碼實現頁面

   之前我們做過如果要點選一個按鈕實現跳轉到另一個按鈕的辦法,有時候我們需要通過一些動作來觸發頁面的跳轉,比如搖動手機,這樣就不能直接用連線的辦法來實現跳轉了,那麼如何通過程式碼的方式來實現跳轉呢?依舊使用過渡的方法,在storyboard中把要實現跳轉的兩張頁面連線,注

swift UI專項訓練39 Swift實現搖一搖功能

當前 lac begin 捕獲 ports 畫面 respond lai mat 微信的搖一搖功能想必大家都用過,過春節的時候搶紅包也沒少搖吧,那麽用swift語言怎樣實現這麽酷炫的功能呢。搖動屬於IOS內置可識別的一種動作,在你須要實現搖動功能的viewco

UI頁面

一、頁面跳轉: 利用navigation實現跳轉和利用模態跳轉的區別: navigation實現跳轉,始終在同一視窗,由導航欄來管理不同的viewController的載入和退出,因此導航欄始終在。 模態實現跳轉,是新建一個視窗,如果需要新的視窗也具有導航

[Android UI介面] tab_Host頁面,重新整理等問題彙總。

之前做了一個專案是關於Tab_Host的,現在完成了恰逢閒餘寫份總結,主要涉及裡面遇到問題以及解決方案的。 (首先說明這份程式碼是在eoe 下載的,這裡感謝分享的那位朋友,限於我的工程是公司的不能拿出來了,只能那這份原來的程式碼進行修改貼出來,歡迎拍磚);

swift UI專項訓練37 實時顯示搜尋結果的搜尋框SearchBar

    今天我們來講點高階點的知識,在搜尋框中輸入關鍵字,下方的tableView自動匹配包含關鍵字的結果。用我最近在做的一款美食類APP為例。 在storyboard中拖入一張表,然後與Vc中的程式碼關聯起來: @IBOutlet weak var tableView:

ui li 形式的菜單 實現頁面

頁面跳轉 app /*跳轉*/ jumpEditRectificatBill:function(){ $("#getEquipLegerFrom li").each(function(){ //var jumpid=$(this).attr("id")

js實現頁面的幾種方式

head 註意 ont rem text pla http bsp cat 通過js或者html或者PHP等動態程序都可以方便的實現跳轉,這裏搜集了幾種頁面跳轉的方式js方式的頁面跳轉1.window.location.href方式 <script langua

LAMP+LNMP(六)戶認證、域名訪問日誌

Linux LAMP一、用戶認證有的網站需要加密特定的網頁,這是我們可以給網頁設置成輸入用戶名和密碼才能訪問,那麽具體的設置是 1、修改/usr/local/apache2.4/conf/extra/httpd-vhosts.conf文件我們先看下模板<VirtualHost *:80>Docum

element-ui 表格單選,高亮,頁面後保持高亮

1:element-ui表格高亮預設顏色,在index.min.css中1855行,這裡我改動了一下: .el-table__body tr.current-row > td {

iOS開發(swift):頁面之設定第一次執行的介面

0.介面回顧   1.在AppDelegate檔案中新增如下程式碼 import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate {

iOS開發(swift):頁面(續)

副標題:.xib檔案的介面與.storyboard的介面相互跳轉 一、.storyboard檔案的介面跳轉到.xib檔案的介面 0.回顧:沿用上一篇文章裡.storyboard的介面。現在要實現點選綠色介面(.storyboard)按鈕跳轉至新的藍色介面(.xib)。 1.下面

排序演算法之快速排序,氣泡排序python程式碼實現

一、快速排序 1.在列表中選出一個基準數(通常為列表的第一個數) 2.將列表中小於基準數的資料移到基準列表的左邊,將大於基準數的資料移到基準數的右邊 3.對於基準數左,右兩邊的列表,不斷重複以上兩個過程,直到每個子集只有一個元素, 即為全部有序的. def qu

Android 程式碼實現複雜介面

                在開發Android應用時有時會遇到純程式碼實現複雜介面的需求,本文通過例項來演示,希望能對大家有所幫助介面截圖:XML佈局檔案:<?xml version="1.0" encoding="utf-8"?><ScrollView     xmlns:andro

3d數學基礎-映象矩陣和切變矩陣-C++程式碼實現

#include <iostream.h> #include <math.h> #include <assert.h> const float kPi = 3.1415926f; const float k2Pi = kPi*2.0f;

c++程式碼實現貪心演算法求解最短路徑問題

貪心演算法求解最短路徑問題: 假設演算法要處理下圖,需要把圖資料組織存放到相應的資料結構中。  這個是標頭檔案stdafx.h中的內容#pragma once #include <stdio.h> #include &

少量程式碼實現redux核心部分及其演化歷史

作者:殷榮檜@騰訊 本文原始碼地址 本文Github地址,歡迎star 先來看一下,完成文章標題所說的,需要完成哪些任務: TODO LIST(計劃列表) 1.redux中reducer的實現 2.redux中action的實現 3.redux中store的實現 3.5 先不使用redux,直

java程式碼實現氣泡排序選擇排序

import java.util.Arrays; public class Sort { public static void main(String[] args) { int[] arr={12,45,89,2,10,9}; maopaoSort(arr); selectSort(arr);

java程式碼實現環圈報數

環圈報數就是圍一圈人,每一次數數數到三的人自動出圈,再接著數, 用資料結構的思想實現 public class Count3Quit {     public static void main(String[] args)     {         boolean[] a

Swift 登入頁面,條件判斷 ,頁面

原:http://www.woowen.com/swift/2014/10/04/swift%20條件判斷頁面跳轉/ 在swift中作跳轉是一件很簡單得事情,可是如果右鍵某個空間拖動然後選擇modal來關聯跳轉關係的話該如何做出程式碼判斷呢? 場景:如果我想做一個登

java程式碼實現javac編譯功能

 (摘自 http://www.evget.com/zh-CN/Info/catalog/15816.html ) Java作為業界應用最為廣泛的語言之一,深得眾多軟體廠商和開發者的推崇,更是被包括Oracle在內的眾多JCP成員積極地推動發展。但是對於Java語言的深度理