自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

WatchKit視圖轉(zhuǎn)換控制小結(jié)

移動開發(fā) iOS
對于WatchKit App,是可以在Storyboard里建立多個InterfaceController并像在iOS應(yīng)用一樣直觀的畫出視圖轉(zhuǎn)換連接的,當然我們也可以通過視圖控制器代碼實現(xiàn)相應(yīng)視圖切換與跳轉(zhuǎn)。

[[134793]]

對于WatchKit App,是可以在Storyboard里建立多個InterfaceController并像在iOS應(yīng)用一樣直觀的畫出視圖轉(zhuǎn)換連接的,當然我們也可以通過視圖控制器代碼實現(xiàn)相應(yīng)視圖切換與跳轉(zhuǎn)。

簡單來說視圖轉(zhuǎn)換連接有三種形式:

1.Push/Pop - 提供Hierarchical形態(tài)下基于棧(Stack)的視圖控制,Hierarchical意為分級視圖架構(gòu),效果類似iOS應(yīng)用里的Navigation界面,主要用于導(dǎo)航類的視圖轉(zhuǎn)換。首先必須有一個根視圖控制器,通過觸發(fā)Storyboard里拖拽生成pushSegue或用pushControllerWithNames:代碼將下一級視圖壓入(Push)堆棧并彈出時,會在標題欄前加上<左箭頭,點擊會返回上一級視圖,也可以執(zhí)行popController()代碼,而直接返回根視圖可以用popToRootController()。

2.Present - 與Push的方式比較類似,會跳轉(zhuǎn)到一個Modal(模態(tài))視圖,區(qū)別是當前視圖的控制器會被釋放并執(zhí)行didDeactivate方法,但我們?nèi)匀豢梢栽谀B(tài)視圖里點標題欄或者在視圖控制器代碼調(diào)用dismissController()方法以重新激活上一個視圖。

3.Next page - 分頁視圖模式,多個視圖的橫向并列排列,左右掃會切換,下方有小圓點進行標識?,F(xiàn)在很多iOS應(yīng)用啟動時都有這種分頁導(dǎo)航用于操作方法或新功能的提示。Storyboard里按住control從視圖A拖到視圖B選擇next page可以建立此關(guān)系。

具體可以看下“WatchKit編程指南:WatchKit Apps--界面導(dǎo)航”這篇文章:

下面重點總結(jié)一些常見問題與解決方法:

1.Q:主控制器為分頁視圖時,無法push分級的視圖棧;主控制器為分級視圖時,無法push分頁視圖。

A:Page-based與Stack模式是互斥的,因此必須使用模態(tài)方式進行切換。主控制器為分頁視圖時,要正確彈出一個分級視圖??梢杂胮resentControllerWithName:方法,而主控制器為分級視圖時,要正確彈出單頁視圖,用

  1. presentControllerWithName:conext: 

方法,而彈出多個頁組成的分頁視圖,需要改為用

  1. presentControllerWithNames:contexts: 

方法。

2.Q:怎么在視圖間傳遞參數(shù)?

A: 利用context參數(shù)封裝參數(shù)對象,若在push模式下需要傳遞視圖控制器delegate,可參考本人之前翻譯的那篇“WatchKit的代理與上下文”文章。

3. Q: 定義了ForceTouch時的上下文菜單,結(jié)果切換視圖時再激活上下文菜單并點擊時報錯說視圖指針丟失。

A: 因為你代碼里是在awakeWithContext:里定義的上下文菜單,然后用模態(tài)方式彈出,這樣切換視圖后原視圖被銷毀就無法正確調(diào)用了菜單內(nèi)容代碼。解決方法是:I.用push方式切換視圖,這樣主視圖存于視圖棧并不會銷毀對象;II.依舊用模態(tài)方式切換視圖,但把上下文菜單定義代碼放到willActivate()函數(shù)里,這樣菜單定義會重新加載不至于失效。

責任編輯:chenqingxiang 來源: CocoaChina
相關(guān)推薦

2015-01-21 16:35:49

Apple WatchWatchKit

2014-11-20 15:44:40

Apple Watch

2014-11-20 16:02:22

WatchKit

2015-07-20 09:16:42

iOSWatchKit開發(fā)

2015-10-21 13:57:09

WatchKit 要點開發(fā)

2015-04-14 09:33:17

WatchKitAPP

2015-08-13 10:15:02

WatchKitHealthKitApplePay

2011-08-01 10:13:46

Xcode 視圖 動畫

2015-06-30 10:48:41

iOSAPPwarchkit

2011-07-07 16:14:37

Cocoa MVC 模型

2010-06-18 12:38:38

UML狀態(tài)機視圖

2011-08-09 16:25:16

Cocos2d視圖坐標

2019-07-30 08:42:54

網(wǎng)絡(luò)訪問控制網(wǎng)絡(luò)地址轉(zhuǎn)換網(wǎng)絡(luò)

2015-03-24 19:48:24

2011-09-19 14:49:26

Vista控制面板

2011-09-01 12:42:09

SQL Server創(chuàng)建加密視圖控制視圖頁面的訪問權(quán)限

2011-08-08 10:46:15

ASP.NET MVC

2011-06-22 13:07:37

MVC

2011-09-01 12:53:02

SQL Server控制視圖頁面的訪問權(quán)限

2011-07-12 09:29:10

主域控制器備份域控制器
點贊
收藏

51CTO技術(shù)棧公眾號