UI Elemente in einem Shared Application Window erzeugen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • UI Elemente in einem Shared Application Window erzeugen

    Hi,

    ich habe in meiner APP eine externe Applikation eingebunden, die ein Window als Parameter übergeben bekommt:

    Quellcode

    1. - (void)viewDidLoad
    2. {
    3. ...
    4. [[AppStart sharedApplication] startApponMainWindow:window];
    5. ...
    6. }


    Wie kann ich "über" dieser Applikation z.B. ein Button erzeugen, um z.b. eine andere View zu laden?


    LG

    Chipie
  • Chipie schrieb:

    Hi,

    ich habe in meiner APP eine externe Applikation eingebunden, die ein Window als Parameter übergeben bekommt:

    Quellcode

    1. - (void)viewDidLoad
    2. {
    3. ...
    4. [[AppStart sharedApplication] startApponMainWindow:window];
    5. ...
    6. }


    Wie kann ich "über" dieser Applikation z.B. ein Button erzeugen, um z.b. eine andere View zu laden?


    LG

    Chipie
    Ich versteh' nur Bahnhof... Und mit einer Zeile Methodenaufruf wird das auch nix...
  • AR.DDev schrieb:


    Ich versteh' nur Bahnhof... Und mit einer Zeile Methodenaufruf wird das auch nix...

    Ich habe eine kompilierte Bibliothek vorliegen in der From lib.a und ein include file lib.h:

    Quellcode

    1. @interface MobiCartStart : UIViewController
    2. {
    3. NSString *PAYPAL_SANDBOX_TOKEN_ID, *PAYPAL_LIVE_TOKEN_ID;
    4. NSString *MOBICART_MERCHANT_EMAIL;
    5. }
    6. @property (nonatomic, retain) NSString *PAYPAL_SANDBOX_TOKEN_ID;
    7. @property (nonatomic, retain) NSString *PAYPAL_LIVE_TOKEN_ID;
    8. @property (nonatomic, retain) NSString *MOBICART_MERCHANT_EMAIL;
    9. // !!!: ********** USE THIS METHOD TO START APP ********* :!!!
    10. + (id)sharedApplication;
    11. - (id)startMobicartOnMainWindow:(UIWindow *) _window withMerchantEmail:(NSString *)_merchantEmail PayPal_SandBox_Email_ID:(NSString *)paypal_Developer_test_account_id Paypal_Live_Token_ID:(NSString *) paypal_Token_Received_From_Paypal;
    12. @end
    Alles anzeigen



    In meinem ViewController starte ich die externe Anwendung:

    Quellcode

    1. #import "MobicartViewController.h"
    2. @implementation MobicartViewController
    3. @synthesize window;
    4. - (void)viewDidLoad {
    5. NSString *strMobicartEmail=[NSString stringWithFormat:@"%@",merchant_email];
    6. NSString *strPaypaEmail=[NSString stringWithFormat:@"%@",merchant_paypal_email_id];
    7. NSString *strPaypalToken=[NSString stringWithFormat:@"%@",merchant_paypal_live_token];
    8. if([strPaypalToken isEqualToString:@"nil"])
    9. strPaypalToken=nil;
    10. if([strPaypaEmail isEqualToString:@"nil"])
    11. strPaypaEmail=nil;
    12. [[MobiCartStart sharedApplication] startMobicartOnMainWindow:window withMerchantEmail:strMobicartEmail PayPal_SandBox_Email_ID:strPaypaEmail Paypal_Live_Token_ID:strPaypalToken];
    13. [super viewDidLoad];
    14. }
    Alles anzeigen



    Soweit so gut, die externe Anwendung startet. Jetzt würde ich aber gerne über einen Button einen andere View laden. Wie kann ich diesen Button erzeugen?
  • Ich bin mir noch immer nicht sicher, ob ich dich richtig verstanden habe... Du möchtest dem Fenster der externen Anwendung einen Button hinzufügen?

    Wird MobiCart als Subview hinzugefügt oder modal aufgerufen?

    Wenn als Subview hinzugefügt wird:

    Quellcode

    1. [[MobiCartStart sharedApplication] startMobicartOnMainWindow:window withMerchantEmail:strMobicartEmail PayPal_SandBox_Email_ID:strPaypaEmail Paypal_Live_Token_ID:strPaypalToken];
    2. UIButton *theButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    3. [theButton setFrame:CGRectMake(20.0, 20.0, 200.0, 44.0)]; // Nur ein Beispiel...
    4. [theButton setTitle:@"Lade andere View!" forState:UIControlStateNormal];
    5. [theButton addTarget:self action:@selector(ladeView:) forControlEvents:UIControlEventTouchUpInside];
    6. [window addSubview:theButton];
  • AR.DDev schrieb:

    Ich bin mir noch immer nicht sicher, ob ich dich richtig verstanden habe... Du möchtest dem Fenster der externen Anwendung einen Button hinzufügen?

    Korrekt.

    AR.DDev schrieb:


    Wird MobiCart als Subview hinzugefügt oder modal aufgerufen?


    Modal.

    AR.DDev schrieb:


    Wenn als Subview hinzugefügt wird:

    Quellcode

    1. [[MobiCartStart sharedApplication] startMobicartOnMainWindow:window withMerchantEmail:strMobicartEmail PayPal_SandBox_Email_ID:strPaypaEmail Paypal_Live_Token_ID:strPaypalToken];
    2. UIButton *theButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    3. [theButton setFrame:CGRectMake(20.0, 20.0, 200.0, 44.0)]; // Nur ein Beispiel...
    4. [theButton setTitle:@"Lade andere View!" forState:UIControlStateNormal];
    5. [theButton addTarget:self action:@selector(ladeView:) forControlEvents:UIControlEventTouchUpInside];
    6. [window addSubview:theButton];
    Hatte ich auch schon probiert. Der Button wird nicht angezeigt.
  • Da MobiCart ein ViewController ist, hat er einen View. Du musst diesen View derzeit auch an etwas anderes (Dein Window?) hängen, damit es überhaupt sichtbar wird. Du kannst es auch an einen anderen View hängen, der weitere Elemente enthält. Das ist zwar etwas frikelig, aber sollte gehen, es sei denn, MobiCart präsentiert sich immer selbst in einem modalen View. Dann hast Du leider Pech -> Kontakt zum Entwickler suchen.

    Übrigens: Das ist keine externe Anwendung, sondern eine Lib. Eine "externe Anwendung" kannst Du in iOS nur mit "openURL" starten, und dann ist erstmal Deine Anwendung weg. Zwei Anwendungen gleichzeitig geht, außer in der MT-Spielwiese, die dehr eng definiert ist, in iOS bekanntlich nicht. "Sandbox" ist das Stichwort. Deine Beschreibung machte daher das Verständnis des Sachverhaltes etwas schwierig .. . ;)
  • fwtag schrieb:

    Da MobiCart ein ViewController ist, hat er einen View. Du musst diesen View derzeit auch an etwas anderes (Dein Window?) hängen, damit es überhaupt sichtbar wird. Du kannst es auch an einen anderen View hängen, der weitere Elemente enthält. Das ist zwar etwas frikelig, aber sollte gehen, es sei denn, MobiCart präsentiert sich immer selbst in einem modalen View. Dann hast Du leider Pech -> Kontakt zum Entwickler suchen.

    Die Inlucde Datei zu Library sieht wiefolgt aus:

    Quellcode

    1. #import <UIKit/UIKit.h>
    2. BOOL isNewsSection;
    3. @interface MobiCartStart : UIViewController <UITabBarControllerDelegate,UINavigationControllerDelegate>
    4. {
    5. NSString *PAYPAL_SANDBOX_TOKEN_ID, *PAYPAL_LIVE_TOKEN_ID;
    6. NSString *MOBICART_MERCHANT_EMAIL;
    7. }
    8. @property (nonatomic, retain) NSString *PAYPAL_SANDBOX_TOKEN_ID;
    9. @property (nonatomic, retain) NSString *PAYPAL_LIVE_TOKEN_ID;
    10. @property (nonatomic, retain) NSString *MOBICART_MERCHANT_EMAIL;
    11. // !!!: ********** USE THIS METHOD TO START APP ********* :!!!
    12. + (id)sharedApplication;
    13. - (id)startMobicartOnMainWindow:(UIWindow *) _window withMerchantEmail:(NSString *)_merchantEmail PayPal_SandBox_Email_ID:(NSString *)paypal_Developer_test_account_id Paypal_Live_Token_ID:(NSString *) paypal_Token_Received_From_Paypal;
    14. @end
    Alles anzeigen



    Die Anwendung wird über startMobicartOnMainWindow gestartet und bekommt ein UIWindow übergeben. Wie soll ich es denn dann an einen anderen View hängen?