萬盛學電腦網

 萬盛學電腦網 >> 手機應用 >> iPhone >> iOS開發中自定義按鈕並跳轉到另外一個視圖實例

iOS開發中自定義按鈕並跳轉到另外一個視圖實例

 本文我們來分享在ios開發中如何通過自定義按鈕並跳轉到另外一個視圖的學習實例,這種場景在ios開發中很常用。

   

剛學iOS不久,雖然視圖切換能直接用stroryboard創建,拖根線就完事了!但不知道為嘛,還是感覺iOS開發中代碼控制視圖靈活方便。

不多說了,開始今天的筆記:

新建工程,不多說啦!我喜歡用Empty Application,創建完成後,新建兩個UIViewController類,假設A和B吧!!哈哈

這兒將appDelegate中的代碼就省了!!哈哈。相信能看到這兒的人,也懂得如何設置root視圖了

我們要實現的是,從A點擊一個按鈕,彈出來B窗口,然後點擊B窗口的一個按鈕,返回到A窗口。

直接開始代碼:
A:

- (void)viewDidLoad
{
    [super viewDidLoad];
//設置視圖背景顏色
    self.view.backgroundColor = [UIColor groupTableViewBackgroundColor];
    
//添加彈出模態視圖按鈕
    UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
//設置按鈕位置和大小
    [button setFrame:CGRectMake(120, 220, 80, 40)];
//設置按鈕文字及狀態
    [button setTitle:@"模態視圖" forState:UIControlStateNormal];
//添加動作綁定
    [button addTarget:self action:@selector(modelViewGO) forControlEvents:UIControlEventTouchUpInside];
//添加進視圖
    [self.view addSubview:button];
}

-(void) modelViewGO
{
    BViewController * modalView = [[BViewController alloc]init];
    modalView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    
    [self presentViewController:modalView animated:YES completion:nil];
//    [modalView release];
}

然後在B視圖中,添加返回按鈕及相關代碼:
B:

- (void)viewDidLoad
{
//和A視圖差不多的東西,不解釋啦!!
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor purpleColor];
    UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [button setFrame:CGRectMake(130, 50, 60, 20)];
    [button setTitle:@"返回" forState:UIControlStateNormal];
    [button addTarget:self action:@selector(back ) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

-(void)back
{
//下面這行代碼作用就是將彈出的模態視圖移除,第一個yes表示移除的時候有動畫效果,第二參數是設置一個回調,當模態視圖移除消失後,會回到這裡,可以在這裡隨便寫句話打個斷點,試一下就知道確實會回調到這個方法
//    [self dismissViewControllerAnimated:YES completion:nil]; 或帶有回調的如下方法
    [self dismissViewControllerAnimated:YES completion:^{

        NSLog(@"back");//這裡打個斷點,點擊按鈕模態視圖移除後會回到這裡
 //ios 5.0以上可以用該方法
    }];
}

程序默認的動畫效果是從下往上彈出,可以改modalTransitionStyle換成其他效果

modalView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

typedef NS_ENUM(NSInteger, UIModalTransitionStyle) {

    UIModalTransitionStyleCoverVertical = 0,//默認垂直向上

    UIModalTransitionStyleFlipHorizontal, 翻轉效果

    UIModalTransitionStyleCrossDissolve,淡入淡出

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_3_2

    UIModalTransitionStylePartialCurl,翻頁效果

#endif

};


需要注意的地方 :1.在彈出的模態視圖上點擊返回按鈕後,該視圖對象徹底被釋放了,記得要將添加到該視圖上的一些對象都寫在dealloc方法中

copyright © 萬盛學電腦網 all rights reserved