我正在写我的第一个有罪的iPhone应用程序。 我的登录界面已准备就绪了。我在我的MainWindow中实现了一个View以获取登录凭据,并将所有UI添加到视图(文本框等)。
现在是什么?
我想查看我的凭据,如果没有问题,我将从主窗口中删除登录视图,并显示包含所有信息的主视图。
怎么办?
我可以轻松地在loginviewcontroller中添加按钮事件,检查那里的logindata并访问主窗口并从那里查看视图本身没有问题吗? 或者我必须从主窗口的视图中声明按钮事件并在那里做所有事情吗?
我的代码:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andDelegate:(id)delegate
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
button.frame = CGRectMake(self.view.frame.size.width / 2 - 55.0f, self.view.frame.size.height / 2 + 85.0f
, 110.0f, 35.0f);
[button setTitle:@"title" forState:UIControlStateNormal];
[button addTarget:delegate action:@selector(yourMethodInMainWindow:) forControlEvents: UIControlEventTouchDown];
[self.view addSubview:button];
}
return self;
}
答案 0 :(得分:2)
答案 1 :(得分:1)
:
//maybe you will need to have more arguments added to you init method
//for instance you might be using -(id)initWithNibName:bundle: right now
//then just add delegate to it like -(id)initWithNibName:bundle:andDelegate:
//just to clarify: delegate = reference to class you want to call a method in
-(id)initMethod:(id)delegate {
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
self.button.frame = CGRectMake(self.view.frame.size.width / 2 - 55.0f, self.view.frame.size.height / 2 + 85.0f
, 110.0f, 35.0f);
[button setTitle:@"title" forState:UIControlStateNormal];
[button addTarget:delegate action:@selector(yourMethodInMainWindow:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
在使用mainWindow的课程中:
-(void)yourMethodInMainWindow:(id)sender {
//do whatever you want to do.
}
这是以编程方式设置它的一种方法。如果您正在使用nib,那么您将在.h文件och类型- (IBAction)buttonClicked:(id)sender
中定义一个方法,然后在接口构建器中连接它们。
我想你知道如何推动新观点。可以使用例如presentModalViewController:animated:
来完成。所有这一切都已经在stackoverflow和谷歌上。
答案here可能会告诉您需要了解的有关访问UIApplication以及窗口的信息。
答案 2 :(得分:0)
您应该使用导航控制器在不同视图之间进行转换。
首先,将导航控制器插入MainWindow.xib
然后,在该导航控制器中加载LoginViewController。 LoginviewController将是一个视图,其中将放置您的登录ID和密码以及登录btn。
现在,对于login btn action,编写一个方法,
- (IBAction) loginBtnPressed : (id) sender{
MainViewController *newObject = [MainViewController alloc] initWithNibName:@"MainViewController" bundle:nil];
[self.navigationController pushViewController:newObject animated:YES];
}
编写此方法后,只需将此方法附加到界面构建器中.xib文件中的btn。