【发布时间】:2018-02-05 15:35:46
【问题描述】:
我想触发从 viewController 到另一个 viewController 的消息。 我编码如下,但 viewController 没有调用委托。 我想在没有 stroyboard 的情况下调用代表。我只是想向另一个 viewController 发送消息。
viewController2.h
@protocol ViewController2Delegate;
@interface ViewController2 : UIViewController
@property (nonatomic, weak) id<ViewController2Delegate> delegate;
@end
@protocol ViewController2Delegate <NSObject>
- (void)showSomethingByDelegate;
@end
viewController2.m
#import "ViewController2.h"
@interface ViewController2 ()
@end
@implementation ViewController2
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (IBAction)buttonPressed:(id)sender {
[self.delegate showSomethingByDelegate];
}
@end
viewController.m
#import "ViewController.h"
#import "ViewController2.h"
@interface ViewController ()
<ViewController2Delegate>
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
ViewController2 *vc2 = [[ViewController2 alloc] init];
vc2.delegate = self;
}
// Below method was not called by delegate.
- (void)showSomethingByDelegate {
NSLog(@"Button Was Pressed!!!");
}
@end
【问题讨论】:
-
我想当
vc2实际进入导航堆栈时,一定有一个 sn-p... >不同的ViewController2的实例最终会进入堆栈,并且任何更改都没有为此设置委托? -
如何导航到“ViewController”?
标签: ios objective-c delegates protocols viewcontroller