Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从一个视图控制器到另一个视图控制器获取值?_Ios_Objective C_Iphone - Fatal编程技术网

Ios 如何从一个视图控制器到另一个视图控制器获取值?

Ios 如何从一个视图控制器到另一个视图控制器获取值?,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

//viewcontrollerA.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
//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屏幕。