想实现一个窗口打开另一个窗口,看cordova里都是xib窗口就没有用storyboard,所以东拼西凑写了下面的代码.
1.创建对应的ViewController.h 继承于UIViewController
#import <UIKit/UIKit.h> @interface LoginViewController : UIViewController { } @end2.创建ViewController.m(开始还仿照工程中的主界面,重写了viewDidLoad 等方法,发现没有毛用,反正暂时啥都不初始化,老子就想看看怎么打开一个窗口.)
(吐槽一下各位大侠的例子,全是一来一大篇,我就是一个粗人,一次只能记住10-20行代码,如果把所有例子都写成hello world,让老粗一个个堆成我要的业务就行了)
#import <Foundation/Foundation.h> #import "LoginViewController.h" @interface LoginViewController (){} @end @implementation LoginViewController //下面代码开始的的时候不用写,是拖动生成的. //- (IBAction)butClick:(id)sender { // [self dismissModalViewControllerAnimated:YES]; //发现这个方法被弃用,所以找了另外一个代替 // [self dismissViewControllerAnimated:YES completion:nil]; //} //end不是自动生成的,要写.(ios怎么不弄个窗口模板,啥都要自己写,真的很C++) @end3.创建了一个View.xib
在点击xib文件中的File's Owner,在右边的选择器 id inspector 中找到 Custom Class,将值Class设置为,刚才创建的ViewController,这样就建立xib文件与h文件的关联关系.
有了这步才可能进行连线.
4.选择connection inspector选择器,Outlets中会出现view,点击右边的圆圈,拖到View上面(Plcacholders ,File's Owner,First Responder 的下面那个View),
让代码里的View与xib的view进行关联,有了这个关联,你就可以做xib view中的控件连线了.
5.找到窗口右上的那个Show Assistant editor,点击,你会看到这个窗口关联的h文件.(多点两次,避免关联窗口没有刷新,显示的是其他的非关联的h文件)
6.在xib中拖入一个button.你将在View下面看到这个控件,在控件上点击鼠标右键,找到Touch Down(点击事件),按住不放拖到 @implementation 与@end之间,如下:
@implementation xxxViewController
这个位置
@end之间
然后随便取个名字(不要给我提命名规范,刚学ios我啥都不懂,也不知为毛拉过去随便命名就可以用),你就看到自动会生成下面的代码:
- (IBAction)mm:(id)sender {
//在这里面可以写点击事件触发的事情.
}
7.我在里面写了就一句,关闭窗口.(代码都是网上找的,知道xib是老东西,找到的过时的方法,看着警告不爽,换了一个新方法,实现窗口关闭)
// [self dismissModalViewControllerAnimated:YES]; //发现这个方法被弃用,所以找了另外一个代替 [self dismissViewControllerAnimated:YES completion:nil];
都是看的xcode3,4的教程,在xcode6.1上写的,发现图标都差不多,下篇试试窗口间传参数,
8.忘了加上如何打开窗口
//随便一个窗口引用一下刚才的ViewController的头文件,再写个按钮的点击事件,这样调用就行了,myView2是我们创建的xib文件名 LoginViewController *loginController = [[LoginViewController alloc] initWithNibName:@"myView2" bundle:nil];//(如果直接init,可以用代码自定义窗口代码,先学简单的吧,代码创建控件空了再吹) UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:loginController]; [self presentViewController:navigationController animated:YES completion:nil];