1. 程式人生 > >IOS學習 iPad控制元件:POP控制元件器,分割視窗、浮動視窗、模態檢視的使用

IOS學習 iPad控制元件:POP控制元件器,分割視窗、浮動視窗、模態檢視的使用

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

// Override point for customization after application launch.

UISplitViewController *splitVC = [[UISplitViewControlleralloc]init];

MasterViewController *masterVC = [[

MasterViewControlleralloc]init];

UINavigationController *masterNAV = [[UINavigationControlleralloc]initWithRootViewController:masterVC];

DetailViewController *detailVC = [[DetailViewControlleralloc]init];

UINavigationController *detailNAV = [[UINavigationControlleralloc]initWithRootViewController

:detailVC];

    splitVC.viewControllers = @[masterNAV,detailNAV];

self.window.rootViewController = splitVC;

self.window.backgroundColor = [UIColorwhiteColor];

    splitVC.delegate = self;

//是否通過手勢控制浮動顯示master視窗,預設為YES,視窗可拉出;NO,視窗不可拉出

    splitVC.presentsWithGesture =YES;

return YES;

}

//隱藏

master主視窗

- (void)splitViewController:(UISplitViewController *)svc willHideViewController:(UIViewController *)aViewController withBarButtonItem:(UIBarButtonItem *)barButtonItem forPopoverController:(UIPopoverController *)pc {

NSLog(@"隱藏主視窗");

}

// 顯示master主視窗

- (void)splitViewController:(UISplitViewController *)svc willShowViewController:(UIViewController *)aViewController invalidatingBarButtonItem:(UIBarButtonItem *)barButtonItem {

NSLog(@"顯示主視窗");

}

// master主視窗作為浮動視窗顯示

- (void)splitViewController:(UISplitViewController *)svc popoverController:(UIPopoverController *)pc willPresentViewController:(UIViewController *)aViewController{

NSLog(@"浮動主視窗");

}

//如果協議方法不實現,橫屏顯示master視窗,豎屏隱藏master視窗

//返回YES:隱藏master主視窗;NO:顯示master主視窗

//- (BOOL)splitViewController:(UISplitViewController *)svc shouldHideViewController:(UIViewController *)vc inOrientation:(UIInterfaceOrientation)orientation{

//    return YES;

//}

@implementation MasterViewController

- (void)viewDidLoad {

    [superviewDidLoad];

// Do any additional setup after loading the view.

    self.title =@"主視窗";

self.view.backgroundColor = [UIColorredColor];

}


@implementation DetailViewController

- (void)viewDidLoad {

    [superviewDidLoad];

// Do any additional setup after loading the view.

    self.title =@"詳情視窗";

self.view.backgroundColor = [UIColoryellowColor];

UIBarButtonItem *leftBtn = [[UIBarButtonItemalloc]initWithTitle:@"pop視窗"style:UIBarButtonItemStyleBorderedtarget:selfaction:@selector(clickAction:)];

self.navigationItem.leftBarButtonItem = leftBtn;

PopTableViewController *popTVC = [[PopTableViewControlleralloc]init];

//如果浮雲視窗需要導航欄,即建立導航控制器

UINavigationController *popNAV = [[UINavigationControlleralloc]initWithRootViewController:popTVC];

//建立浮動視窗,UIPopoverController繼承於NSObject,不是檢視控制器

_popCtrl = [[UIPopoverControlleralloc]initWithContentViewController:popNAV]; //需將檢視控制器放入pop視窗中

//設定浮雲視窗大小

_popCtrl.popoverContentSize =CGSizeMake(320,500);

UIBarButtonItem *rightBtn = [[UIBarButtonItemalloc]initWithTitle:@"模態視窗"style:UIBarButtonItemStyleBorderedtarget:selfaction:@selector(showModal:)];

self.navigationItem.rightBarButtonItem = rightBtn;

}

-(void)clickAction:(UIBarButtonItem *)btnItem{

//判斷pop視窗是顯示還是隱藏

if (_popCtrl.popoverVisible) {

        [_popCtrldismissPopoverAnimated:YES];//如果顯示,讓其隱藏

    }else {

        [_popCtrlpresentPopoverFromBarButtonItem:btnItem permittedArrowDirections:UIPopoverArrowDirectionAnyanimated:YES];// UIPopoverArrowDirectionAny 任何方向

    }

}

-(void)showModal:(UIBarButtonItem *)btnItem {

UIViewController *modalVC = [[UIViewControlleralloc]init];

    modalVC.title = @"模態視窗";

UINavigationController *modalNAV = [[UINavigationControlleralloc]initWithRootViewController:modalVC];

    modalNAV.modalPresentationStyle =UIModalPresentationFormSheet;

/*UIModalPresentationFullScreen = 0,  預設全屏

     UIModalPresentationPageSheet 豎屏時,全屏顯示,橫屏時,中間顯示

     UIModalPresentationFormSheet 在螢幕中心顯示

     UIModalPresentationCurrentContext 在觸發的控制器上顯示 */

    [selfpresentViewController:modalNAV animated:YEScompletion:NULL];

}


@implementation PopTableViewController

- (void)viewDidLoad {

    [superviewDidLoad];

    self.title =@"浮動視窗";

self.view.backgroundColor = [UIColororangeColor];

}


相關推薦

IOS學習 iPad控制元件POP控制元件分割視窗浮動視窗檢視的使用

@implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptio

ionic學習(四)Tab控制元件 學習

實現功能: 1.新增tabs頁面:下部新增一個新聞按鈕 2.去掉二級頁面tabs選單: 3.修改返回按鈕:上圖的左上方箭頭 步驟 1. 將news頁面放在下面   在tabs.ts和tabs.html中引入並顯示news元件     圖示在這

C# DataGridView控制元件與ListView控制元件的對比學習(二)ListView控制元件學習

一、定義:     表示Windows列表檢視控制元件,一般用來呈現資料,是一種輕量級的呈現資料的方法。 二、重要的屬性:     1、第一個非常重要的屬性是View:獲取或設定項在控制元件中的顯示方式,包括Details、LargeIcon、List、SmallI

iOS學習筆記-015.UISegmentedControl——選項卡控制元件

UISegmentedControl——選項卡控制元件. 一、- initWithItems: 例項化 // swift init(items items: [AnyObje

自定義控制元件手勢縮放移動遮罩

import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import and

Android控制元件佈局(相對佈局)RelativeLayout RelativeLayout是相對佈局控制元件控制元件之間相對位置或相對父容器位置進行排列。 相對佈局常用屬性 子類控制元件相對子

RelativeLayout是相對佈局控制元件:以控制元件之間相對位置或相對父容器位置進行排列。 相對佈局常用屬性: 子類控制元件相對子類控制元件:值是另外一個控制元件的id android:layout_above----------位於給定DI控制元件之上 android:layout_below -

MFC常用控制元件圖片控制元件Picture Control

  圖片控制元件簡介        圖片控制元件和前面講到的靜態文字框都是靜態文字控制元件,因此兩者的使用方法有很多相同之處,所屬類都是CStatic類,有關成員函式已在前面介紹,這裡就不重複了。        圖片控制元件靜態和動態載入圖片        雞啄米下

VS2013/MFC程式設計入門之二十六(常用控制元件圖片控制元件Picture Control)

本節主要講一種簡單實用的控制元件,圖片控制元件Picture Control。通過使用圖片控制元件我們可以在介面某個位置顯示圖片以美化介面。        圖片控制元件簡介        圖片控制元件和前面講到的靜態文字框都是靜態文字控制元件,因此兩者的使用方法有很多

VS2013/MFC程式設計入門之三十一(常用控制元件標籤控制元件Tab Control )

前面兩節講了樹形控制元件Tree Control,本節開始講解標籤控制元件Tab Control,也可以稱為選項卡控制元件。        標籤控制元件簡介        標籤控制元件也比較常見。它可以把多個頁面整合到一個視窗中,每個頁面對應一個標籤,使用者點選某個標

控制演算法PID控制

(一):前言         PID控制是一種簡單但是可靠的控制演算法,但是市面上大部分講自動控制的書對這個問題講的過於複雜了。一上來就是一大堆數學公式正常人都受不了啊,這篇文章我希望使用一種較為簡單的方法來解釋PID控制。 (二):比例係數P &

python學習第三天數據類型交互格式化輸出基本運算符

描述 浮點型 針對 none 多個 其中 輸入 是我 基本 數據類型 1.什麽是數據類型? 變量值才是我們存的數據,所以數據類型指的是變量值的種類 2.為何數據要分類? 變量值是用來保存現實世界中的狀態的,那麽針對不同的狀態,就應該用不同

【python學習筆記】40Pandas中DataFrame的分組/分割/合併

學習《Python3爬蟲、資料清洗與視覺化實戰》時自己的一些實踐。 DataFrame分組操作 注意分組後得到的就是Series物件了,而不再是DataFrame物件。 import pandas as pd # 還是讀取這份檔案 df = pd.read_csv("

自動機器學習工具全景圖精選22種框架解放煉丹師

構建一個典型的機器學習專案,一般分成以下步驟: 收集原始資料、合併資料來源、清洗資料、特徵工程、模型構建、超引數調優、模型驗證和裝置部署。 整個過程中,模型構建最能體現創造力,而最耗時的,要數特徵工程和超引數調優。 於是,有時候會因為趕時間,過早將模型從實驗階段轉移到生產階段,導致它們發揮不出最佳效果;

Vue元件 自定義元件props傳遞資料

一、new一個Vue 二、Vue中使用自定義元件需要先註冊元件 註冊元件(其實就是定義元件):可以註冊全域性元件,也可以註冊區域性元件。 三、btn是傳引數的,在使用組建的時候可以傳入不同的引數。 <body> <div id="app

Python+OGR庫學習(二)讀取點向量檔案複製特定屬性值點並另存為shp檔案

程式碼思路: 1、匯入相關庫包,切換到當前資料夾 2、註冊驅動,開啟點向量檔案,獲取圖層 3、建立輸出檔案,並獲取圖層(沒有屬性定義) 4、定義輸出圖層欄位屬性:假設已知檔案所有屬性欄位定義(即ID和cover) (1)讀取輸入檔案中某一要素 (2)獲取ID、cover欄位定義 (3

caffe學習(四)py-faster-rcnn配置執行測試程式(Ubuntu)

上一篇部落格中講了在Ubuntu下安裝caffe的經驗總結(各種問題,簡直懷疑人生了)。部落格連結:點我開啟 faster-rcnn有兩個版本,分別是Python的和MATLAB的。這裡介紹python版本的faster-rcnn的配置。 網上有很多相關的教程,起初我在配置

學習筆記】六面向物件的程式設計——理解JS中的物件屬性建立物件JS中的繼承

  ES中沒有類的概念,這也使其物件和其他語言中的物件有所不同,ES中定義物件為:“無序屬性的集合,其屬性包含基本值、物件或者函式”。現在常用的建立單個物件的方法為物件字面量形式。在常見多個物件時,使用工程模式的一種變體。 1.理解物件   1)物件的屬性分兩種:資料屬性和訪問器屬性,每個型別的屬性都具有

深度學習入門教程UFLDL學習實驗筆記一稀疏自編碼

UFLDL即(unsupervised feature learning & deep learning)。這是斯坦福網站上的一篇經典教程。顧名思義,你將在這篇這篇文章中學習到無監督特徵學習和深度學習的主要觀點。 UFLDL全文出處在這:http://ufldl.stanford.edu/wiki/

thinkphp5.0學習(十)TP5.0驗證

一、驗證器 1.控制器中使用驗證器 // 例項化驗證類(驗證規則)Validate([驗證資訊],[錯誤資訊]) $validate=new Validate( [ 'u

STL原始碼學習系列十二 容器配接( Priority_queue)

容器配接器( Priority_queue) 概述 priority_queue是擁有優先順序的queue,不過它容器內的元素並不是根據加入順序排列,而是根據使用者定義的優先順序進行排列。priority_queue只能在佇列尾部加入元素,在頭部取出元素。不能遍歷容器,因