0

InterfaceBuilderを使わずにマルチビューアプリが作れるか知りたいです。

Xcodeとストーリーボードを使用するだけで作成する方法は知っていますが、プログラムで作成できるようにしたいと思っています。

例:UIViewControllerA(デフォルトのビュー)にaがUIButtonあり、別のUIViewControllerBにある場合、 AIUIWebViewをクリックすると、2番目のビュー(IBなし)を表示できるようになります。UIButtonUIViewController

UIButtonアクションをに設定して、2番目のビューを表示するにはどうすればよいですか(Interface Builderなし)?

4

2 に答える 2

1

ボタンにターゲットを追加できます。

[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

次に、ControllerAに次のメソッドを追加します。

-(void)buttonPressed:(id)sender
{
    [self.superview addSubview:controllerB.view];
    [self.view removeFromSuperview];
}
于 2013-01-07T12:59:51.720 に答える
1

ViewControllerAについて

    - (void)viewDidLoad
    {

        UIButton  *btn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
        [btn setFrame:CGRectMake(50.0f,200.0f,60.0f,30.0f)];
        [btn setTitle:@"Next" forState:UIControlStateNormal];
        [btn setTitleColor:[UIColor blackColor] forState:UIControlStateHighlighted];
        [btn addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
        [self.view addSubview:btn];
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    }
    -(IBAction)btnPressed:(id)sender
    {
        NextViewController *nxt=[[NextViewController alloc]initWithNibName:nil bundle:nil];
        [self.navigationController pushViewController:nxt animated:YES];
    }

viewControllerBで

    - (void)viewDidLoad
    {
        UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0, 320, 460)];    
       NSURL *targetURL = [NSURL URLWithString:@"http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIWebView_Class/UIWebView_Class.pdf"];
        NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
        [webView loadRequest:request];

       [self.view addSubview:webView];
     }

AppDelegate.hでこのようなナビゲーションコントローラーであることを確認してください

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
     UINavigationController*  navController = [[UINavigationController alloc] initWithRootViewController:self.self.viewController ];
    self.window.rootViewController = navController;
    [self.window makeKeyAndVisible];
    return YES;
}
于 2013-01-07T13:01:08.560 に答える