簡體   English   中英

如何在可可粉中切換視圖?

[英]How do I switch views in cocoa touch?

我在可可觸摸項目中有兩個名為“ view1ViewController”和“ view2ViewController”的視圖控制器,它們都鏈接到情節提要中的UIView。 假設我在view1中放了一個按鈕。 以代碼方式,按下該按鈕后切換到view2的最簡單方法是什么? 我需要輸入什么代碼才能使其正常工作?

-更新-

盡管大家都告訴過我,但我仍然無法解決這個問題。 也許我沒有得到什么? 我是否需要添加其他內容? 這是view1ViewController.m的代碼:

#import "view1ViewController.h"
#import "view2ViewController.h"


@interface view1ViewController ()

@property (nonatomic, strong) view2ViewController *controller;

@end

@implementation view1ViewController
@synthesize controller = _controller;

- (view2ViewController *)controller
{
    if (!_controller) {
        _controller = [[view2ViewController alloc] init];
    }
    return _controller;
}

- (IBAction)buttonPressed {
    [self.navigationController pushViewController:self.controller animated:YES];
}
@end

我沒有觸摸其他文件,並確保將情節提要中添加的視圖的類設置為view2ViewController。

只是

[self.navigationController pushViewController:view2ViewController animated:YES];

簡單的結果,您可以發現自己搜索了一段時間...

我假設您的應用基於導航。 如果不是這種情況,則需要初始化UINavigationController 例如,在您的應用程序委托中,在didFinishLaunchingWithOptions:方法中,您可以執行以下操作

navigationController = [[UINavigationController alloc] init];
[self.window addSubview:navigationController.view];
[navigationController pushViewController:self.viewController animated:NO];

[self.window addSubview:navigationController.view];
[self.window makeKeyAndVisible];

其中navigationController是設置為@propertyUINavigationController

如果您不想設置UINavigationController ,則可以選擇使用以下方式模態顯示其他視圖

[self presentModalViewController:view2ViewController animated:YES];

如果您尚未設置導航控制器,則此方法將不起作用。 要設置導航控制器,您需要確保當前視圖是導航控制器的根視圖控制器。 這可以通過編程方式完成,但是如果使用情節提要,則將視圖嵌入導航控制器會容易得多。 控制器安裝到位后,推動即可工作。

對於情節圖板嵌入,請轉到頂部菜單,然后在導航控制器中選擇“ 編輯”->“嵌入”。

為了通過代碼完成此操作,無論您在何處創建此視圖,都應將其編寫為

UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:view1ViewController];

然后,在添加view1ViewController的任何位置添加導航控制器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM