Ich hoffe, Sie haben die Eigenschaft deklariert und das IBOutlet button
synthetisiert.
Erstellen Sie ein Objekt von FirstViewController in SecondViewController.h und Eigenschaft und synthetisieren Sie es.
SecondViewController.h
@interface SecondViewController {
.
.
FirstViewController *firstView;
.
.
}
@property (nonatomic,strong) FirstViewController *firstView;
@end
SecondViewController.m
@implementation SecondViewController
.
.
@synthesize firstView;
.
.
@end
Nun, wenn Sie präsentieren eine modale Ansicht von Firstview
FirstViewController.m
-(IBAction)presentModalView {
SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
secondView.firstView = self;
[self presentModalViewController:secondView animated:YES];
}
Jetzt in SecondViewController, wo Sie SecondViewController entlassen nur diesen Code hinzufügen.
SecondViewController.m
-(IBAction)dismissModalView {
[self.firstView.button setHidden:YES];
[self dismissModalViewControllerAnimated:YES];
}
EDIT:
zu diesem Link finden:
@protocol implementation in @interface in Objective-C
EDIT-2: Mit Protokollimplementierung
SecondViewController.h
@protocol SecondViewControllerDelegate <NSObject>
@required
- (void)hideButton;
@end
@interface SecondViewController {
.
.
id <SecondViewControllerDelegate> delegate;
.
.
}
@property (retain) id delegate;
@end
SecondViewController.m
@implementation SecondViewController
.
.
@synthesize delegate;
.
.
@end
Nun, wenn Sie präsentieren eine modale Ansicht von Firstview
FirstViewController.h
#import <UIKit/UIKit.h>
@interface FirstViewController : UIViewController<SecondViewControllerDelegate>
{
.
.
.
.
}
.
.
@end
FirstViewController.m
-(IBAction)presentModalView {
SecondViewController *secondView = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
secondView.delegate = self;
[self presentModalViewController:secondView animated:YES];
}
#pragma mark - SecondViewController Delegate
- (void)hideButton
{
[self.button setHidden:YES]; //Here button is UIButton you want to hide when second view is dismissed.
}
Jetzt in SecondViewController, wo Sie SecondViewController entlassen, fügen Sie einfach diesen Code hinzu.
SecondViewController.m
-(IBAction)dismissModalView {
[delegate hideButton];
[self dismissModalViewControllerAnimated:YES];
}
Lassen Sie mich wissen, wenn Sie auf diese weitere Hilfe benötigen.
Hoffe, das hilft.
Wie wäre es, Protokoll zu implementieren? –
verstecken Sie Knopf von secondview in discussModelView Methode? – mithilesh
Ich versuchte mit Protokoll, aber es hat nicht funktioniert. – ios