簡體   English   中英

ios如何將自定義控制器重定向obj-c代碼放入自定義視圖

[英]ios How to put custom controller redirect obj-c code in custom view

我是ios應用程序開發的新手,而且還使用Objective-C編碼。 不知道有沒有可能 首先讓我描述我的工作,然后再描述我想要的。 我在下面添加了屏幕截圖,您可以直接查看該屏幕截圖,也可以先閱讀說明,然后查看屏幕截圖。

因此,我創建了一個帶有自定義視圖的自定義xib。 我將其命名為Menu.h和.c

我在該“自定義”視圖中放置了四個按鈕,每個按鈕也都創建了IBOutlet。 現在可以在運行時創建它們。 我必須在“用戶定義運行時屬性”設置下的情節提要中為控制器設置一些屬性。 我可以使用awakeFromNib函數在自定義視圖中獲取該值。 現在,我可以輕松訪問和更改這些按鈕的屬性。 我也可以使用此代碼對這些按鈕進行操作

[btnOutlet addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];

而我正在采取行動。

但是我想做的是能夠使用控制器重定向代碼,如下所示

      NSString * storyboardName = @"Main";
     UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
     ViewController * vc = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
     [ViewController presentViewController:vc animated:YES completion:nil];

它在控制器中正常工作,但是現在當我嘗試將其放在自定義視圖中到該按鈕操作中時,它向我顯示錯誤“菜單的無可見接口聲明了選擇器...”。 我在下面添加了屏幕截圖。

沒有“菜單”的可見接口聲明選擇器

請提出我該如何解決? 這讓我發瘋。 :)

使用故事板時最好使用segues。 將IB中的一個從視圖控制器(推送)添加到另一個視圖控制器,並調用performSegue方法:

 [self performSegueWithIdentifier: @"MySegue" sender: self];

確保您在UIViewController子類中。

從體系結構的角度來看,不要在View類中執行類似的代碼,而要使用ViewController(因此,此類方法僅在UIViewController子類中可用)

在情節提要中創建一個具有唯一標識符的segue,例如“ ViewControllerSegue”,然后調用

[self performSegueWithIdentifier:@"ViewControllerSegue"];

並在其中設置ViewController

- (void)prepareForSegue:(UIStoryboardSegue *)segue
             sender:(id)sender;

暫無
暫無

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

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