iOS:我的第一个应用程序的初学者帮助:切换视图?

时间:2011-08-02 10:20:43

标签: iphone ios ios4

我正在写我的第一个有罪的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;
}

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

在你的viewcontroller中

//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。