• Objective-C ,ios,iphone开发基础:多个视图(view)之间的切换,以及视图之间传值。


    所有的视图都继承自 UIViewController,都使用 - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;来初始化视图,所以一般初始化的数据或者变量都是在这个方法中。

    首先建一个single view 工程,然后再添加一个view。

    结构如图:

    单击单开 cidpViewController.xib 文件,在视图上面拖放一个UIbutton 和一个 UILable,并且在cidpViewController.h文件中声明一个变量和一个方法,然后将UIbutton 和对应的方法连线, UILable和对应的变量连线,(这里要注意的是,必须将UIbutton的Touch up inside 和对应的方法连接 )。

    SecondViewController.xib同上:

    关键代码如下:

    #pragma mark 支持试图切换的方法
    #pragma mark -
    -(IBAction)btnPreClick:(id)sender{
        //实例化一个SecondViewController 对象
        SecondViewController* second = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
        //控制试图加载的样式,就是一些效果,有四种可以选择
        second.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
        //让实例化的试图对象加载在当前试图之上,
        [self presentModalViewController:second animated:YES];
        //页面传值。
        second.lblNext.text = lblPre.text;
        //释放开辟的空间,前提是将 arc关闭。
        [second release];
        
    }
    
    
    #pragma mark 试图消失的方法:
    #pragma mark -
    -(IBAction)btnBackClick:(id)sender{
        //让当前试图消失
        [self dismissModalViewControllerAnimated:YES];
    }

    整个代码如下:

    //
    //  cidpViewController.h
    
    #import <UIKit/UIKit.h>
    #import "SecondViewController.h"
    @interface cidpViewController : UIViewController{
        
        IBOutlet UILabel* lblPre;
    }
    @property (nonatomic,retain) UILabel* lblPre;
    -(IBAction)btnPreClick:(id)sender;
    @end
    
    //
    //  cidpViewController.m
    
    #import "cidpViewController.h"
    
    @implementation cidpViewController
    @synthesize lblPre;
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
        // Release any cached data, images, etc that aren't in use.
    }
    
    #pragma mark - View lifecycle
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    
    - (void)viewDidUnload
    {
        [super viewDidUnload];
        // Release any retained subviews of the main view.
        // e.g. self.myOutlet = nil;
    }
    
    - (void)viewWillAppear:(BOOL)animated
    {
        [super viewWillAppear:animated];
    }
    
    - (void)viewDidAppear:(BOOL)animated
    {
        [super viewDidAppear:animated];
    }
    
    - (void)viewWillDisappear:(BOOL)animated
    {
        [super viewWillDisappear:animated];
    }
    
    - (void)viewDidDisappear:(BOOL)animated
    {
        [super viewDidDisappear:animated];
    }
    
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        // Return YES for supported orientations
        return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    }
    
    #pragma mark 支持试图切换的方法
    #pragma mark -
    -(IBAction)btnPreClick:(id)sender{
        //实例化一个SecondViewController 对象
        SecondViewController* second = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
        //控制试图加载的样式,就是一些效果,有四种可以选择
        second.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
        //让实例化的试图对象加载在当前试图之上,
        [self presentModalViewController:second animated:YES];
        //页面传值。
        second.lblNext.text = lblPre.text;
        //释放开辟的空间,前提是将 arc关闭。
        [second release];
        
    }
    @end
    
    //
    //  SecondViewController.h
    
    #import <UIKit/UIKit.h>
    
    @interface SecondViewController : UIViewController{
        IBOutlet UILabel* lblNext;
        
    }
    @property (nonatomic ,retain) UILabel* lblNext;
    -(IBAction)btnBackClick:(id)sender;
    @end
    
    //
    //  SecondViewController.m
    
    #import "SecondViewController.h"
    
    @implementation SecondViewController
    @synthesize lblNext;
    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            // Custom initialization
        }
        return self;
    }
    
    - (void)didReceiveMemoryWarning
    {
        // Releases the view if it doesn't have a superview.
        [super didReceiveMemoryWarning];
        
        // Release any cached data, images, etc that aren't in use.
    }
    
    #pragma mark - View lifecycle
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        // Do any additional setup after loading the view from its nib.
    }
    
    - (void)viewDidUnload
    {
        [super viewDidUnload];
        // Release any retained subviews of the main view.
        // e.g. self.myOutlet = nil;
    }
    
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        // Return YES for supported orientations
        return (interfaceOrientation == UIInterfaceOrientationPortrait);
    }
    #pragma mark 试图消失的方法:
    #pragma mark -
    -(IBAction)btnBackClick:(id)sender{
        //让当前试图消失
        [self dismissModalViewControllerAnimated:YES];
    }
    
    @end
  • 相关阅读:
    复变函数
    abc136
    点集
    一些数学题
    牛客多校第六场
    牛客多校第五场G
    复数
    generator 1
    digits 2
    Winner
  • 原文地址:https://www.cnblogs.com/wsq724439564/p/3285945.html
Copyright © 2020-2023  润新知