私はObjective CとXcodeに非常に慣れていないため、何か愚かなことをしている可能性がありますが、さまざまな提案を試してみましたが、それらを機能させることができません.
つまり、別の UIViewController でボタンが押されたときに、既存の UIViewController でメソッドを呼び出したいと考えています。
(少し背景: 2 つの画面はメイン画面とメニュー画面です。ユーザーが上にスワイプしてメニューを表示し、[完了] ボタンが押されたときに、メニュー画面から文字列変数 (この場合は URL) を送信する必要があります)メイン画面のメソッドに追加すると、メイン画面はその URL を UIWebView に表示します)。
method/URL 変数を AppDelegate/MainViewController に入れて合成してみました。また、MenuViewController を MainViewCOntroller のサブクラスにし、[super readFile:url] を使用してメソッドを呼び出しようとしましたが、コンパイルは行われましたが、webview が表示されなかったため、既存の MainViewController オブジェクトで呼び出されたとは思いません。
コードの関連部分を以下に貼り付けます: (ご協力ありがとうございます!)
MainViewController.h
#import <UIKit/UIKit.h>
@interface MainViewController : UIViewController {
IBOutlet UIWebView *vCodeView;
}
- (void)readFile:(NSString *)newURL;
@end
MainViewController.m
#import "MainViewController.h"
#import "MenuViewController.h"
@interface MainViewController ()
@end
@implementation MainViewController
- (void)readFile:(NSString *)newURL {
vCodeView.hidden = NO;
// seperate url by full stops
NSArray *splitURL = [newURL componentsSeparatedByString:@"."];
// find extension of file
NSString *extension = [splitURL objectAtIndex:([splitURL count]-1)];
// DO SOME OTHER STUFF WITH URL THEN DISPLAY CONTENT IN UIWEBVIEW
}
- (void)swipeUpRecognised {
MenuViewController *menuView = [[MenuViewController alloc] initWithNibName:@"MenuViewController" bundle:nil];
menuView.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentViewController:menuView animated:YES completion:nil];
}
MenuViewController.h
#import <UIKit/UIKit.h>
#import "MainViewController.h"
@interface MenuViewController : UIViewController {
IBOutlet UIBarButtonItem *bDone;
IBOutlet UITextField *fUser;
IBOutlet UITextField *fPass;
IBOutlet UITextField *fAddress;
IBOutlet UITextField *fAutoConnectAddress;
}
- (IBAction)bDonePressed;
@end
MenuViewController.m
#import "MenuViewController.h"
#import "MainViewController.h"
@interface MenuViewController ()
@end
@implementation MenuViewController
- (IBAction)bDonePressed {
NSString *user = @"admin";
NSString *pass = @"password";
NSString *path = @"54.246.90.95/repos/project1/trunk/dir1/test.c";
// url of file
NSArray *pathArray = [[NSArray alloc] initWithObjects:@"http://", user, @":", pass, @"@", path, nil];
NSString *url = [pathArray componentsJoinedByString:@""];
//call the method here passing in url
[self dismissViewControllerAnimated:YES completion:nil];
}