2

私は2つのView Controllerを持っています。MainViewController は SignUp ViewController をプッシュします。SignUp View Controller が終了したら、MainViewController の同じインスタンスにアクセスして UIButton.title を更新する必要があります。

.h メインビュー

//MainViewController.h
#import <UIKit/UIKit.h>


@interface MainViewController : UITableViewController 
-(void)loggedIn;

@end

.m

@interface MainViewController ()

@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;
    NSLog(@"Preapre For Segue %@", self);
}

.h サインアップ

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

.m

@synthesize mainViewController;

- (void) loggedIn
{
    NSLog(@" MainViewController %@", mainViewController);
    [mainViewController loggedIn];
    self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
}

NSLog を実行すると、さまざまな値が得られます。

Preapre For Seg <STMainViewController: 0x9f7d600>
MainViewController (null)
4

1 に答える 1