iOS:通过委派更改UIButton标题

iOS:通过委派更改UIButton标题,ios,uibutton,delegation,Ios,Uibutton,Delegation,我正在使用委派更改UIButton的标题 .h MainView //MainViewController.h #import <UIKit/UIKit.h> @class SignUpDelegate; @protocol SignUpDelegate <NSObject> @required -(void)loggedIn; @end @interface MainViewController : UITableViewController <NSFetch

我正在使用委派更改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
.h注册

#import <UIKit/UIKit.h>
#import "MainViewController.h"
@interface SignUp : UIViewController <UITextFieldDelegate, UIActionSheetDelegate, SignUpDelegate>
@property (strong, nonatomic) MainViewController *mainViewController;
@end

因此,两个NSLogs都打印得很好,我认为这意味着代理正在工作,但是,导航栏上UIButton上的标题从未更改为“注销”

,这是因为您重新创建了
STMasterViewController
(应该改为
MainViewController
)每次在
loggedIn
委托方法中。(您可以通过在
-[MainViewController loggedIn]
上添加断点并检查
self.logInOutButton
是否为非零来验证这一点)。相反,您应该获取对
MainViewController现有实例的引用,并对其进行操作。

谢谢。是的,假设它是MainViewController(对不起,我有点偏执,更改了实际的变量名)。如何获取对MainViewController现有实例的引用?@user1107173如何创建
SignUpController
?它是在情节提要中创建的一个序列。@user1107173在
prepareForSegue:sender:
中,创建
SignUpController
实例后,设置它的委托。设置它的委托是什么意思?你能举个例子吗?谢谢
#import <UIKit/UIKit.h>
#import "MainViewController.h"
@interface SignUp : UIViewController <UITextFieldDelegate, UIActionSheetDelegate, SignUpDelegate>
@property (strong, nonatomic) MainViewController *mainViewController;
@end
@synthesize mainViewController;
- (IBAction)createUser:(id)sender
{
   [self loggedIn];
}

- (void) loggedIn
{
    NSLog (@"This is Logged in inside SignUp");
    [mainViewController loggedIn];
}