2
我有兩個視圖控制器。 MainViewController推送SignUp ViewController。一旦SignUp View Controller關閉,我需要訪問MainViewController的同一個實例來更新UIButton.title。iOS:訪問調用Segue的同一個UIViewController實例
.H的MainView
//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)
您是否嘗試過記錄的註冊視圖控制器是你分配mainViewController後?看起來有可能是兩者之間的中間控制器,最有可能是一個導航控制器... – 2013-05-03 13:25:14
在設置'mainViewController'屬性之前檢查'signUp'是否爲'nil'。 – 2013-05-03 13:42:29
請參閱http://stackoverflow.com/a/9736559/1271826 – Rob 2013-05-03 13:49:07