如何从根视图返回上一个视图?

时间:2011-08-02 09:04:13

标签: iphone objective-c ios

- (void)cancel {
// What should I do here?
}

// root view controller
- (void)viewDidLoad {
    [super viewDidLoad];

    UIBarButtonItem *cancelButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancel)];
    self.navigationItem.leftBarButtonItem = cancelButton;
    [cancelButton release];     
}

我在导航栏中添加了取消按钮。 我想在按下取消按钮时从根视图返回上一个视图。 取消时我需要做什么?我添加了这样的根视图控制器。

RootController *rootController = [[RootController alloc]initWithStyle:UITableViewStylePlain];               
UINavigationController *aNavigationController = [[UINavigationController alloc]initWithRootViewController:rootController];
self.naviController = aNavigationController;
[aNavigationController release];
[rootController release];
[self.view addSubview:[naviController view]];

4 个答案:

答案 0 :(得分:3)

您可以弹出视图。

[self.navigationController popViewControllerAnimated:YES];

你也可以解雇它。

dismissModalViewcontrollerAnimated

修改 如果您要添加视图,则需要删除视图。

[self.view removeFromSuperView];

答案 1 :(得分:1)

如果您使用navigationController推送视图,则可以使用popViewController: animated:方法。如果您将视图显示为模态视图,则可以使用dismissModalViewcontrollerAnimated:方法

答案 2 :(得分:0)

您似乎没有推动或展示aNavigationController。您只是将其添加为subviewpopViewControlle r和dismissModalViewController都不会在此处运作。你必须从它的superView中删除它。试试这个。

- (void)cancel {

    [self.view removeFromSuperView];
}

答案 3 :(得分:0)

添加此内容。

[self.view removeFromSuperview]