搜尋

首頁  >  問答  >  主體

纯objective-c写的iOS App,增加新功能时可以用xib或者StoryBoard吗

我负责接手开发一个iOS App,之前这个产品已经在App Store架上了,没有用到xib, storyboard,所以的界面都是在objective-c代码画的(CGRectMake)。

现在我要给这个产品增加新的模块,新模块如果用xib或者StoryBoard,能和老的代码兼容吗,我问了团队内的两个同事,一个说可以,一个说不可以。

到底是可以不可以呢?

问题补充,老的代码里,所有界面都共用一个导航头,不同界面之间的跳转是这样写的:

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

在loadView方法中这样修改导航条上的文字:

self.title = @"关于我们";

我隐约记得那位说不可以的同事,就是说新的模块用xib/storyboard实现,pushViewController就不兼容了。只是隐约记得,不确信,如果有错,多半是我太菜听错,应该不是那同事的错-_-

大家讲道理大家讲道理2772 天前1436

全部回覆(11)我來回復

  • 伊谢尔伦

    伊谢尔伦2017-04-17 11:22:32

    當然可以,每個UIViewController都是獨立的,你新加一個ViewController在xib上面實作介面不會影響到別的地方。如果是改以前的Controller,在呼叫的時候換一個構造方法就可以了,其實xib就是替換了loadView這個方法裡幹的事

    回覆
    0
  • 巴扎黑

    巴扎黑2017-04-17 11:22:32

    可以相容
    例如一個uiviewcontroller,你開始沒加xib,後來加個xib,把關聯的class改為vc的class就行。還有就是不能重寫loadview方法,把初始化view的內容放到別處。
    例如是一個uiview,定義一個view的xib,修改class為你所關聯的class,然後直接使用。

    回覆
    0
  • 阿神

    阿神2017-04-17 11:22:32

    絕對都可以,現在接手的專案是手寫程式碼,nib,SB三種混用的,該支援的方法都支援。

    回覆
    0
  • PHPz

    PHPz2017-04-17 11:22:32

    可以。例如,我在舊工程裡新增了一個用户模块,這個模組用StoryBoard 管理頁面流,這些VC 以UINavigationController 為容器(這個可自行自訂),那從目前程式碼跳到使用者模組的程式碼如下:

    - (void)goToUserModule {
        UIStoryboard *sb = [UIStoryboard storyboardWithName:@"User_iPhone" bundle:nil];
        UINavigationController *navigationVC = [sb instantiateInitialViewController];
        navigationVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
        [self presentViewController:navigationVC animated:YES completion:nil];
    }

    只要模組設計得清晰,我覺得基本上可以無縫銜接。

    回覆
    0
  • 阿神

    阿神2017-04-17 11:22:32

    xib很明顯可以,StoryBoard沒用過腦補不可以。另外用StoryBoard deployment target要5.0

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 11:22:32

    可以。

    其實xib只是幫你(漂亮的)做了-(void)loadView中的活而已。類似self.title = @"關於我們";這種屬性設置,放到-(void)viewDidLoad方法中即可。

    回覆
    0
  • 迷茫

    迷茫2017-04-17 11:22:32

    xib一定可以

    但是為什麼要這麼做? xib出現版本衝突手動merge要死人的

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 11:22:32

    樓主,你自己試試看不就知道了麼?

    回覆
    0
  • PHPz

    PHPz2017-04-17 11:22:32

    當然可以,storyborad會比較清晰,但ipa 的大小會大一點

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-17 11:22:32

    這有一個特別實用的技術,Xib模組化開發http://00red.com/blog/2016/07...

    回覆
    0
  • 取消回覆