以编程方式启动和关闭UINavigationView

时间:2014-07-16 20:40:05

标签: ios objective-c

如果用户点击tableview中的行(3个选项),我有很多关于显示视图的选项。 我像这样开始新的ViewController:

 ImageViewNIB *dest = [[ImageViewNIB alloc] init];
        [self presentViewController:dest animated:YES completion:nil];

当它出现时,我想点击按钮关闭它。我从NIB文件中显示了新视图。

@interface ImageViewNIB : UIViewController

@property (strong, nonatomic) IBOutlet UIImageView *imageView;

@property (strong, nonatomic) IBOutlet UIBarButtonItem *close;


@end



#import "ImageViewNIB.h"

@interface ImageViewNIB ()

@end

@implementation ImageViewNIB

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
    }
    return self;
}

- (IBAction)backBtnUserClicked:(id)object {

    [self.navigationController dismissViewControllerAnimated:YES completion:^{
        NSLog(@"KONCZE");
    }];
}
@end

从笔尖看:

enter image description here

所有内容都以编程方式启动并创建其中的UINavigationBar和按钮。 NaviationBar中的按钮是UIBarButtonItem类型,但我使用“.M”类中的方法将其与IB连接。它没有显示NSLOG,并且视图在录制时不会关闭。如何以编程方式而不是STORYBOARD创建这个segue?

1 个答案:

答案 0 :(得分:1)

您没有UINavigationController。因此,您应该将dismiss方法发送给self:

[self dismissViewControllerAnimated:YES completion:^{
    NSLog(@"KONCZE");
}];