Ios 如何从一个视图控制器到另一个视图控制器获取值?
//viewcontrollerA.hIos 如何从一个视图控制器到另一个视图控制器获取值?,ios,objective-c,iphone,Ios,Objective C,Iphone,//viewcontrollerA.h @class viewA; @protocol viewADelegate<NSObject> - (void)emailidgetmethod:(NSString *)string; @end @interface Login : UIViewController { } @property (nonatomic,assign) id <viewADelegate> delegate; @end #import "vi
@class viewA;
@protocol viewADelegate<NSObject>
- (void)emailidgetmethod:(NSString *)string;
@end
@interface Login : UIViewController
{
}
@property (nonatomic,assign) id <viewADelegate> delegate;
@end
#import "viewcontrollerA.h"
@interface viewcontrollerB : UIViewController<viewADelegate>
@end
//viewcontrollerB.h
@class viewA;
@protocol viewADelegate<NSObject>
- (void)emailidgetmethod:(NSString *)string;
@end
@interface Login : UIViewController
{
}
@property (nonatomic,assign) id <viewADelegate> delegate;
@end
#import "viewcontrollerA.h"
@interface viewcontrollerB : UIViewController<viewADelegate>
@end
方法未调用,因为viewControllerA的viewDidLoad方法未调用。您应该将viewControllerA作为子视图添加到viewControllerB,并将viewControllerA的视图添加为viewControllerB视图的子视图我认为,您的
viewControllerA
首先加载,然后导航到viewControllerB
控制器。如果是这种情况,您的委托函数将不会调用,因为正如您所看到的,当加载ViewControllerA
并调用viewDidLoad
时,您的delegate
为零,因此它将无法调用函数
因此,您需要首先加载ViewControllerB
,然后导航到ViewControllerA
谢谢您正在调用另一个ViewController中的ViewControllerA中声明的实例方法。不会调用该方法,因为您只能在ViewControllerA中访问该方法。可以将-(void)更改为+(void),使其成为类方法。然后在ViewControllerB中,创建ViewControllerA
ViewControllerA*VCA=[[ViewControllerA alloc]init]的实例代码>
然后您可以在ViewControllerA中访问此方法。[VCA methodName]代码>您希望如何将字符串从一个视图控制器发送到另一个视图控制器?我想从视图控制器B访问视图控制器,而不进入视图控制器。您可以在用户默认值中保存值,然后从其他视图控制器获取。@Deepakravi,viewController A是否在导航阵列中?viewController不是导航阵列。我想访问view controllerA data中的数据,而无需按下viewcontrollerA屏幕。