Я хочу отменить второй контроллер представления с помощью UIBarButtonItem
, но я просто не получу код в порядке. Пожалуйста помоги.UIBarButtonItem Отменить не работает
Viewcontroller.h
#import <UIKit/UIKit.h>
#import "SecondViewController.h"
@interface ViewController : UIViewController <SecondViewControllerDelegate>
@end
Viewcontroller.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.destinationViewController isKindOfClass:[SecondViewController class]]) {
SecondViewController *vc2 = segue.destinationViewController;
vc2.delegate = self;
}
}
-(void)dismissViewController
{
NSLog(@"dismissed");
[self dismissViewControllerAnimated:YES completion:nil];
}
@end
Secondviewcontroller.h
#import <UIKit/UIKit.h>
@protocol SecondViewControllerDelegate <NSObject>
- (void) dismissViewController;
@end
@interface SecondViewController : UIViewController
@property (weak, nonatomic) id <SecondViewControllerDelegate> delegate;
- (IBAction)backBarButtonItemPressed:(UIBarButtonItem *)sender;
@end
BackbarButton означает CancelButton
Secondviewcontroller .m
#import "SecondViewController.h"
@interface SecondViewController()
@end
@implementation SecondViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)backBarButtonItemPressed:(UIBarButtonItem *)sender {
[self.delegate dismissViewController];
}
@end
Почему ваш 'shutViewController' реализован в вашем первом ViewController, когда он объявлен в вашем' SecondViewController.h'? – somtingwong
Чтобы уволить из первого VC и позвонить во второй VC – Nielsapp
Но почему у вас есть объявление для него на вашем втором контроллере просмотра, если вы его не используете. В любом случае, если эта кнопка не будет сохранять какие-либо данные, и вы просто хотите выйти, попробуйте ctrl + перетащить с кнопки на выход «Exit» на раскадровке – somtingwong