0
위임을 사용하여 UIButton의 제목을 변경하고 있습니다.iOS : 대리인을 통해 UIButton 제목 변경
.H의 MAINVIEW
//MainViewController.h
#import <UIKit/UIKit.h>
@class SignUpDelegate;
@protocol SignUpDelegate <NSObject>
@required
-(void)loggedIn;
@end
@interface MainViewController : UITableViewController <NSFetchedResultsControllerDelegate>
{
id <SignUpDelegate> delegate;
}
@property (nonatomic, assign) id <SignUpDelegate> delegate;
-(void)loggedIn;
@end
하는 .m
@interface MainViewController()
//This button is connected to the UINavigationBar Button that needs its title changed.
//Via Interface Builder, the default value of the title is setup as "Login"
[email protected] (weak, nonatomic) IBOutlet UIBarButtonItem *logInOutButton;
@end
-(void)loggedIn
{
NSLog (@"This is Logged in inside MainView.m");
self.logInOutButton.title = @"Logout";
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
UIViewController *destinationViewController = segue.destinationViewController;
Signup *signUp = [destinationViewController isKindOfClass:[Signup class]] ? (Signup*)destinationViewController : nil;
signUp.mainViewController = self.delegate;
}
.H 가입
#import <UIKit/UIKit.h>
#import "MainViewController.h"
@interface SignUp : UIViewController <UITextFieldDelegate, UIActionSheetDelegate, SignUpDelegate>
@property (strong, nonatomic) MainViewController *mainViewController;
@end
하는 .m
@synthesize mainViewController;
- (IBAction)createUser:(id)sender
{
[self loggedIn];
}
- (void) loggedIn
{
NSLog (@"This is Logged in inside SignUp");
[mainViewController loggedIn];
}
S
오, 모두 NSLogs 내가 대표는 그러나 탐색 표시 줄에있는 UIButton에 제목이 STMasterViewController
(이 대신 MainViewController
을 했어야 다시 때문이다 "로그 아웃"
감사합니다. 네, MainViewController (죄송합니다, 나는 편집 적이며 실제 변수 이름을 변경)이라고 가정합니다. MainViewController의 기존 인스턴스에 대한 참조를 얻으려면 어떻게해야합니까? – user1107173
@ user1107173'SignUpController'는 어떻게 생성됩니까? – Mar0ux
Storyboard에서 만든 segue입니다. – user1107173