亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

詳解IOS中Tool Bar切換視圖方法

2019-10-21 18:43:27
字體:
來源:轉載
供稿:網友

本文通過實例給大家詳細講解了IOS開發中Tool Bar切換視圖方法以及原理解釋,希望我們的整理對你有用,一起學習下。

iOS中幾種典型的多視圖程序:

(1)Tab Bar Application:程序的底部有一排按鈕,輕觸其中一個按鈕,相應的視圖被激活并顯示出來;

(2)Navigation-Based Application:其特點是使用navigation controller,而navigation controller使用navigation bar來控制多級視圖;

(3)Tool Bar Application:程序的底部有一個工具條,利用工具條中的按鈕來切換視圖,經常與Tab Bar Application混淆。

這次要做的例子就是使用了Tool Bar,只是簡單了實現了視圖切換功能,并添加一些視圖切換時的效果。在做例子之前,首先要了解一下視圖的切換原理。

此文來自: 馬開東云搜索 轉載請注明出處 網址: http://makaidong.com

此文原標題: 使用Tool Bar切換視圖 來源網址: http://makaidong.com/yangxt/1/58141_12002051.html

一般來說,一個多視圖的程序要至少三個View Controller,其中一個作為Root Controller。所謂Root Controller,是指用戶看到的第一個Controller,并且在程序加載時這個Controller就加載了。

Root Controller通常是UINavigationController或者UITabBarController的子類,也可以是UIViewController的一個子類。

在多視圖程序中,Root Controller的工作獲得兩個或者更多的其他視圖,并根據用戶輸入顯示不用的視圖。

除Root Controller之外,其他視圖就作為Content Controller,可以理解為可能會顯示出來的各種視圖。

為了更好地理解多視圖程序的結構,我們從Empty Application開始創建我們的程序。

1、創建工程:

運行Xcode 4.2,新建一個Empty Application,名稱為MultiView,其他設置如下圖:

IOS,Tool,Bar,切換視圖

2、創建3個View Controller:

依次選擇File — New — New File,打開如下窗口:

IOS,Tool,Bar,切換視圖

找到UIViewController subclass并單擊Next,打開下面的窗口:

IOS,Tool,Bar,切換視圖

輸入名稱RootViewController,并且保證Subclass of選擇UIViewController,下面的兩個選框都不選;按照同樣的步驟新建兩個View Controller,名稱分別是FirstViewController和SecondViewController。建好后,在Project Navigation中顯示文件如下:

IOS,Tool,Bar,切換視圖

3、為三個View Controller創建.xib文件:

依次選擇File — New — New File,打開如下窗口:

IOS,Tool,Bar,切換視圖

在左邊選User Interface,右邊選View,單擊Next,在新窗口中的Device Family中選擇iPhone,單擊Next,打開如下窗口:

IOS,Tool,Bar,切換視圖

輸入名稱RootView,單擊Create,創建了一個.xib文件。用同樣的方法再創建兩個.xib,名稱分別是FirstView和SecondView。

4、修改App Delegate:

4.1 單擊AppDelegate.h,在其中添加代碼,在@interface之前添加@class RootViewController;在@end之前添加@property (strong, nonatomic) RootViewController *rootViewController;添加之后的代碼如下:

view source print ?

#import <UIKit/UIKit.h> @class RootViewController;  @interface AppDelegate : UIResponder <UIApplicationDelegate>  @property (strong, nonatomic) UIWindow *window;  @property (strong, nonatomic) RootViewController *rootViewController;  @end 

 

4.2 單擊AppDelegate.m,修改其代碼。

在@implementation之前添加#import "RootViewController.h",在@implementation之后添加@synthesize rootViewController;然后修改didFinishLaunchingWithOptions方法如下:view source print ?  - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions  {  self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];  // Override point for customization after application launch.  self.rootViewController = [[RootViewController alloc] initWithNibName:@"RootView" bundle:nil];  UIView *rootView = self.rootViewController.view;  CGRect rootViewFrame = rootView.frame;  rootViewFrame.origin.y += [UIApplication sharedApplication].statusBarFrame.size.height;  rootView.frame = rootViewFrame;  [self.window addSubview:rootView];  self.window.backgroundColor = [UIColor whiteColor];  [self.window makeKeyAndVisible];  return YES;  }

 

① self.rootViewController = [[RootViewController alloc] initWithNibName:@"RootView" bundle:nil];

這行代碼用于從RootView.xib文件中初始化rootViewController,注意initWithNibName:@"RootView"中不要后綴名.xib

② rootViewFrame.origin.y += [UIApplication sharedApplication].statusBarFrame.size.height;

使得RootViewController的視圖不會被狀態欄擋住

5、修改RootViewController.h:

單擊RootViewController.h,在其中添加兩個屬性和一個方法,如下:

view source print ?

 #import <UIKit/UIKit.h>  @class FirstViewController;  @class SecondViewController;  @interface RootViewController : UIViewController  @property (strong, nonatomic) FirstViewController *firstViewController;  @property (strong, nonatomic) SecondViewController *secondViewController;  - (IBAction)switchViews:(id)sender;  @end 

 

6、打開RootView.xib,在坐邊選擇File's Owner,在右邊打開Identity Inspector,在Class下拉菜單選擇RootViewController:

IOS,Tool,Bar,切換視圖

這樣,我們就可以從RootView.xib文件向RootViewController創建Outlet和Action了。

7、為RootView.xib添加工具欄:打開RootView.xib,拖一個Tool Bar到視圖上,雙擊Tool Bar上的按鈕,修改其名稱為Switch Views:

IOS,Tool,Bar,切換視圖

8、添加Action映射:

選中Switch Views按鈕,按住Control,拖到File's Owner,松開鼠標后選擇switchViews方法:

IOS,Tool,Bar,切換視圖

9、選擇File's Owner,按住Control鍵,拖到View,松開鼠標,選擇view:

IOS,Tool,Bar,切換視圖

10、修改RootViewController.m:

打開RootViewController.m文件,在@implementation之前添加代碼:

view source print ? 

#import "FirstViewController.h" #import "SecondViewController.h"

 

在@implementation之后添加代碼:

view source print ? 

@synthesize firstViewController; @synthesize secondViewController;

 

接下來修改viewDidLoad方法,這個方法默認是被注釋掉的,先去掉其周圍的注釋符,然后修改其代碼如下:

view source print ?

- (void)viewDidLoad {  self.firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil];  [self.view insertSubview: firstViewController.view atIndex:0];  [super viewDidLoad];  } 

 

添加switchViews方法:

view source print ? 

 - (IBAction)switchViews:(id)sender {  if (self.secondViewController.view.superview == nil) {  if (self.secondViewController == nil) {  self.secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:nil];  }  [firstViewController.view removeFromSuperview];  [self.view insertSubview:self.secondViewController.view atIndex:0];  } else {  if (self.firstViewController == nil) {  self.firstViewController =  [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil];  }  [secondViewController.view removeFromSuperview];  [self.view insertSubview:self.firstViewController.view atIndex:0];  }  }

 

修改didReceiveMemoryWarning方法:

view source print ?

- (void)didReceiveMemoryWarning {  [super didReceiveMemoryWarning];  if (self.firstViewController.view.superview == nil) {  self.firstViewController = nil;  } else {  self.secondViewController = nil;  }  } 

 

11、打開FirstView.xib文件,選擇左邊的File's Owner,然后在Identity Inspector中選擇Class為FirstViewController;然后按住Control鍵從File's Owner圖標拖到View,在彈出的菜單選擇view。為SecondView.xib進行同樣的操作,不過Class選擇為SecondViewController。

12、打開FirstView.xib文件,選擇View,打開Attribute Inspector,進行如下設置:

IOS,Tool,Bar,切換視圖

對SecondView.xib進行同樣設置,不過背景顏色設成紅色。

13、此時運行程序,你會看見剛啟動的時候,程序顯示的綠色背景,輕觸Switch Views按鈕后,背景變成了紅色。不斷輕觸按鈕,背景不斷變換。

14、添加切換背景的動畫效果:

打開RootViewController.m,修改其中的switchViews方法如下:

view source print ?

 - (IBAction)switchViews:(id)sender {  [UIView beginAnimations:@"View Flip" context:nil];  [UIView setAnimationDuration:1.25];  [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  if (self.secondViewController.view.superview == nil) {  if (self.secondViewController == nil) {  self.secondViewController = [[SecondViewController alloc] initWithNibName:@"SecondView" bundle:nil];  }  [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromRight forView:self.view cache:YES];  [self.firstViewController.view removeFromSuperview];  [self.view insertSubview:self.secondViewController.view atIndex:0];  } else {  if (self.firstViewController == nil) {  self.firstViewController = [[FirstViewController alloc] initWithNibName:@"FirstView" bundle:nil];  }  [UIView setAnimationTransition: UIViewAnimationTransitionCurlUp forView:self.view cache:YES];  [self.secondViewController.view removeFromSuperview];  [self.view insertSubview:self.firstViewController.view atIndex:0];  }  [UIView commitAnimations];  } 

 

注意四個表示切換效果的常量:

view source print ?

UIViewAnimationTransitionFlipFromLeft UIViewAnimationTransitionFlipFromRightUIViewAnimationTransitionCurlDownUIViewAnimationTransitionCurlUp 

 

分別表示從左翻轉、從右翻轉、向下卷、向上卷。
運行后翻頁效果如下:

IOS,Tool,Bar,切換視圖 IOS,Tool,Bar,切換視圖

 

 

注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美一级大片在线免费观看| 国产日本欧美一区| 欧美成人在线免费| 国产日韩欧美在线| 国产精品一区二区三区在线播放| 韩国19禁主播vip福利视频| 91国偷自产一区二区三区的观看方式| 国产脚交av在线一区二区| 亚洲xxxxx性| 福利一区视频在线观看| 亚洲人成网站777色婷婷| 精品国产91乱高清在线观看| 亚洲精品一区中文| 久久婷婷国产麻豆91天堂| 欧美性xxxxxxx| 国产中文字幕亚洲| 久久欧美在线电影| 成人激情在线播放| 国产精品网站视频| 深夜福利日韩在线看| 亚洲国产精品成人一区二区| 日韩激情视频在线播放| 中文字幕精品网| 亚洲第一精品夜夜躁人人躁| 久操成人在线视频| 亚洲精品98久久久久久中文字幕| 国产精品免费网站| 中文字幕国内精品| 亚洲亚裔videos黑人hd| 亚洲国产精品成人精品| 欧美成人一二三| 播播国产欧美激情| 91精品国产综合久久香蕉最新版| 日韩精品黄色网| 欧美性极品xxxx娇小| 亚洲国产高潮在线观看| 日韩中文字幕在线看| 国产精品极品美女粉嫩高清在线| 国产精品第10页| 久久久av电影| 成人精品久久一区二区三区| 国产精品第七影院| 国产a∨精品一区二区三区不卡| 国产精品揄拍一区二区| 91精品国产91久久久久久不卡| 国产中文字幕91| 亚洲天堂网在线观看| 69视频在线免费观看| 亚洲精品视频网上网址在线观看| 91tv亚洲精品香蕉国产一区7ujn| 国产日韩精品入口| 国产一区二区三区直播精品电影| 国产欧美久久一区二区| 96pao国产成视频永久免费| www国产精品com| 亚洲欧美日韩国产中文专区| 国产精品高潮呻吟视频| 亚洲免费视频在线观看| 97成人在线视频| 久久精品视频99| **欧美日韩vr在线| 国产精品视频白浆免费视频| 欧美激情网站在线观看| 日韩免费精品视频| 精品动漫一区二区三区| 久久av红桃一区二区小说| 欧美日韩国产丝袜另类| 亚洲另类图片色| 久久精品视频免费播放| 最新国产精品亚洲| 成人免费看吃奶视频网站| 国产精品欧美风情| 美日韩精品免费观看视频| 国产视频欧美视频| 欧美亚洲午夜视频在线观看| 亚洲色图在线观看| 草民午夜欧美限制a级福利片| 欧美精品免费在线| 精品偷拍各种wc美女嘘嘘| 精品国产一区久久久| 日韩动漫免费观看电视剧高清| 国产精品久久久久久久天堂| 性色av一区二区咪爱| 日韩精品极品在线观看播放免费视频| 成人动漫网站在线观看| 国产视频精品va久久久久久| 国产午夜精品免费一区二区三区| 久久久天堂国产精品女人| 午夜美女久久久久爽久久| 亚洲视频一区二区三区| 国产精品9999| 久久精彩免费视频| 亚洲区在线播放| 中文字幕日韩在线视频| 国产综合久久久久久| 中文字幕亚洲精品| 午夜精品福利电影| 韩国国内大量揄拍精品视频| 国产欧美精品一区二区三区介绍| 欧美激情aaaa| 中文字幕在线看视频国产欧美在线看完整| 久久亚洲综合国产精品99麻豆精品福利| 中文欧美日本在线资源| 国产精品久久久久久久9999| 久久亚洲精品国产亚洲老地址| 国产日韩在线亚洲字幕中文| 成人激情电影一区二区| 欧美视频专区一二在线观看| 在线电影中文日韩| 一区二区成人av| 欧美高清激情视频| 日韩高清欧美高清| 欧美亚洲成人xxx| 亚洲天堂一区二区三区| 日韩欧美精品中文字幕| 欧美电影免费观看高清| 国产欧洲精品视频| 日韩电影大片中文字幕| 国产精品久久久999| 亚洲在线视频观看| 国产精品久久精品| 亚洲精品久久久久国产| 亚洲欧美第一页| zzijzzij亚洲日本成熟少妇| 中文字幕亚洲二区| 在线中文字幕日韩| 久久免费视频网站| 亚洲精品一区中文| 久久99国产精品久久久久久久久| 色婷婷综合久久久久中文字幕1| 久久成人在线视频| 国产精品视频一| 亚洲天堂第二页| 91精品久久久久久久久青青| 欧美日韩国产一区二区| 欧美黑人巨大xxx极品| 国产综合久久久久久| 亚洲国产97在线精品一区| zzjj国产精品一区二区| 亚洲第一页在线| 欧美性20hd另类| 欧美成人h版在线观看| 欧美视频裸体精品| 成人免费激情视频| 狠狠爱在线视频一区| 4388成人网| 国产综合在线看| 亚洲精品成a人在线观看| 欧美日韩国产成人在线| 国产亚洲视频在线观看| 亚洲欧美变态国产另类| 国产精品日韩一区| 国产精彩精品视频| 亚洲色图18p| 亚洲va码欧洲m码| 亚洲女成人图区| 久久久免费精品视频| 欧美理论电影网| 欧美二区在线播放| 操日韩av在线电影| 97精品久久久| 精品国产福利视频| 国产精品99久久久久久白浆小说| 91情侣偷在线精品国产|