Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-20473] iOS: Support storyboard in iOS-modules

GitHub Issuen/a
TypeNew Feature
PriorityHigh
StatusClosed
ResolutionFixed
Resolution Date2021-02-18T18:15:00.000+0000
Affected Version/sn/a
Fix Version/sRelease 10.0.0
ComponentsiOS
Labelsmodule, storyboard
ReporterRainer Schleevoigt
AssigneeVijay Singh
Created2016-02-25T21:20:44.000+0000
Updated2021-02-18T18:15:00.000+0000

Description

Some iOS libraries use storyboard for UI. To build a module I cannot embed this storyboard – I have to add it (after compiling with studio) in xcode. It is a workaround, that doesn't work in SDK ≧ 5.0.0. because the error message appears "cannot find app.js". Proposal: the build process looks into module folder, detects a folder named "storyboard" and copy the content into xcode project.

Attachments

FileDateSize
ti.storyboard.zip2020-12-08T01:42:47.000+000044442

Comments

  1. Tim Poulsen 2016-02-25

    I just ran into the same thing today. See my ticket on the source module project https://github.com/hyperlab/TiMixpanel/issues/29 Mixpanel requires storyboards to show their in-app surveys.
  2. Rainer Schleevoigt 2016-02-25

    Hi Tim, in my case it is a ready to use banking module for money transactions and for security reasons it is not allowed to modify the lib. In my module I only wrap the create method and the result callbacks. I will look to your project. Cheers! Rainer
  3. Chee Kiat Ng 2016-02-29

    Can you try this? Open the Xcode project in build folder. 1. Don't clean in Xcode. 2. Xcode->Preferences 3. Locations->Derived Data->Advanced 4. Select Custom->Relative to Workspace 5. Done. Now go ahead to build or run. Remember, don't clean, otherwise you have to *appc run* again to build the project. And also remember to revert back this change once you are done with the Xcode project and wish to go back to do things in Titanium.
  4. Tim Poulsen 2016-03-11

    Following the steps above, I get a "Could not find the file app.js" error.
  5. Vijay Singh 2020-12-08

    PR - https://github.com/appcelerator/titanium_mobile/pull/12328 To test - 1. Get attached module (ti.storyboard) which has storyboard. 2. Build module. 3. Create new app. Include the module in tiapp.xml. 4. Replace app.js with following -
       var Stroyboard = require('com.storyboard');
       
       const win = Ti.UI.createWindow({
           backgroundColor: '#fff'
       });
       
       const btn = Ti.UI.createButton({
           title: 'Show Controller from Stroyboard'
       });
       
       btn.addEventListener('click', () => {
       	Stroyboard.showStoryboard;
       });
       
       win.add(btn);
       win.open();
       
    5. Run the app. On click of button, it will present view controller with label 'Titanium Rocks!'
  6. Satyam Sekhri 2021-02-18

    FR Passed Waiting for Jenkins build
  7. Satyam Sekhri 2021-02-18

    Merged to master branch

JSON Source