Ionic-framework: لا توجد حشوة لشريط الحالة (في نظام iOS) عند الضغط على التنقل داخل نموذج

تم إنشاؤها على ٢١ سبتمبر ٢٠١٦  ·  45تعليقات  ·  مصدر: ionic-team/ionic-framework

وصف موجز للمشكلة:

يمكن أن يتداخل شريط التنقل مع شريط الحالة على نظام iOS ، عندما يتم دفع صفحة جديدة باستخدام NavController#push من داخل نموذج. انظر لقطة الشاشة.

img_2079

ما هو السلوك الذي تتوقعه؟

مثل جميع أشرطة التنقل الأخرى ، يجب أن يترك هذا مساحة كافية لشريط الحالة.

خطوات التكاثر:

  1. افتح ملف.
  2. داخل النموذج ، اتصل بـ NavController#push مع أي صفحة.

أي إصدار أيوني؟ 2

الريبو الذي يظهر مثالاً على مشكلتك

https://github.com/zmbc/statusbar

انتقل إلى القائمة ، وافتح عنصرًا ، ثم اضغط على "Push Something".

قم بتشغيل ionic info من الطرفية / موجه أوامر cmd: (الصق الإخراج أدناه)
إصدار Gulp: إصدار CLI 3.9.1
محلي Gulp: الإصدار المحلي 3.9.1
إصدار الإطار الأيوني: 2.0.0-beta.11
إصدار CLI الأيوني: 2.0.0-beta.32
إصدار ليب التطبيق الأيوني: 2.0.0-beta.18
إصدار iOS: 1.8.6
إصدار ios-sim: 3.1.1
نظام التشغيل: Mac OS X El Capitan
إصدار العقدة: v6.3.0
إصدار Xcode: Xcode 7.3.1 Build version 7D1014

التعليق الأكثر فائدة

لا تزال موجودة في الزاوي الأيونية 3.3.0. اي طريقة لاصلاحه؟

ال 45 كومينتر

نفس المشكلة هنا. لقد قمت بحلها من خلال عدم الضغط على الصفحة الجديدة ولكن بتقديمها كطريقة ثانية.

اهلا جميعا! شكرا لاستخدام Ionic !. يسعدني أن أبلغ أنه لم يعد بإمكاني إعادة إظهار هذه المشكلة مع RC0. شكرا!

هذا الخطأ لا يزال موجودا. لا يمكن إعادة إنتاج هذه المشكلة إلا على جهاز / محاكي فعلي. لن يظهر على متصفحات سطح المكتب إلا إذا قمت بتمرير {statusbarPadding: true} إلى متغير التكوين IonicModule.forRoot(MyApp, config) . لقد قمت بإنشاء ريبو سريع لإثبات هذه المشكلة مع RC0 https://github.com/msalcala11/modal-padding-bug.

نفس المشكلة هنا.

يمكن تأكيد هذه المشكلة أيضًا

نعم هذه القضية ما زالت قائمة. يرجى إعادة الفتح

علينا توثيق النماذج بشكل أفضل ، لدينا أشخاص يعملون على هذا الآن.
comfortmeroyipressburgerCyrisXD @ msalcala11zmbc لديك لإنشاء جديد ايون الملاحة من أجل أن يكون التنقل داخل مشروط، مثلما تفعل أن يكون التنقل في التطبيق الخاص بك.

@Component({
  template: '<ion-nav [root]="root"></ion-nav>'
})
export class NavigationModal {
  root = ModalFirstPage;
}

// YOUR CONTENT MODAL
@Component({})
export class ModalFirstPage {
}

(...)

  presentModalChildNav() {
    this.modalCtrl.create(NavigationModal).present();
  }

هذا لا يزال غير منطقي حقًا بالنسبة لي.

لدي صفحة سأنتقل إليها إما من صفحة أخرى أو من صيغة حسب مكان المستخدم في التطبيق.

عندما أقوم بالتنقل داخل النموذج ، فإنه ينتقل إلى الصفحة ، وكل شيء ينتقل بشكل جيد ويعمل تمامًا كما أريده. باستثناء عدم تطبيق حشوة شريط الحالة عند الانتقال إلى الصفحة من أحد الوسائط.

لا أرى حقًا كيف يساعدني مقتطف الشفرة أعلاه في ذلك على الإطلاق؟ يبدو أن هذا يجب أن يكون شيئًا بسيطًا حقًا لأن كل شيء يعمل وظيفيًا وفي أحد الإصدارات التجريبية السابقة ، تم أيضًا تطبيق حشوة شريط الحالة بشكل صحيح ولكن تم كسر هذا مرة أخرى في إصدار لاحق.

لاحظ أن android ليس لديه أي مشكلة مع نفس الكود ، حيث أن التنقل إما من صفحة أخرى أو من مشروط يتم تنسيقه بشكل صحيح ويعمل بشكل جيد ، وأتوقع أن يكون ios هو نفسه.

لا يزال موجودا. أي اختراقات بسيطة لمنع هذا؟

قم بتطبيق CSS التالي على ion-navbar و ion-title لإصلاح ذلك. أستخدم ngIf * لتطبيقه فقط إذا كان platform.is (iOS) لأن android لا يحتاج إلى ذلك. يتم تجاوز هذا ببساطة بواسطة css الافتراضي عند الفتح من صفحة أخرى على iOS لذلك لا توجد مشاكل هناك أيضًا.

لاحظ أيضًا أن أي تنبيه / ورقة عمل / منبثقة تفتحها من الصفحة المدفوعة حديثًا ستفتح خلف الصفحة. ستحتاج إلى اختراق قيمة z-index لكي تكون هذه المكونات أعلى من مؤشر z المشروط بحيث تكون دائمًا في المقدمة. بالنظر إلى أن هذه الأشياء يجب أن تكون دائمًا في المقدمة على أي حال ، فهذه ليست مشكلة حقًا.

<ion-navbar *ngIf="globals.isIos" style="height:calc(44px + 20px); min-height:calc(44px + 20px); padding-top:20px;">
    <button ion-button menuToggle>
      <ion-icon name="menu"></ion-icon>
    </button>
    <ion-title style="padding-top:14px !important;">{{selectedItem.name}}</ion-title>
  </ion-navbar>

لا تزال تواجه هذه المشكلة. هل سيتم إصلاح هذا قريبًا؟

mrhirsch هناك مشكلة مماثلة هنا . تحقق من ذلك. لم يتم إصلاحه ، لكن manucorporat طلبت مثالًا على الريبو قدمته هناك ، لذلك آمل أن يعملوا عليه.

@ ghenry22

الطريقة التي تقوم بها بهذه الحشو ليست طريقة جيدة. لا تستخدم *ngIf لإخفاء أشرطة التنقل بناءً على أنواع الأنظمة الأساسية. حساب ion-content لاحقًا لن يأخذ في الحسبان شريط التنقل وسيؤدي إلى تحويل ion-content بالكامل لأعلى.

بدلاً من ذلك ، في app.scss ، أضف CSS التالي.

.platform-ios .ios-header {
  height:calc(56px + 20px);
  min-height:calc(56px + 20px);
  padding-top:20px;
}

ثم ببساطة في العنوان الذي تحتاجه (بالنسبة لي ، كل الصفحات التي أدفع فيها إلى صفحة علامة التبويب) ، فقط أضف class="ios-header" .

<ion-header>
  <ion-navbar class="ios-header">
  </ion-navbar>
</ion-header>

الكثير من التجفيف ، وبدون مشكلة ion-content . بالطبع ، إذا نظر الفريق الأيوني في هذا الأمر بأنفسهم ، فلن نضطر إلى المرور بهذا الألم.

بالنسبة لأي شخص يتعثر في هذا الأمر مع popover ، فهذه هي نفس المشكلة.

فيما يتعلق بالحل: ليس من الجيد اتباع نهج إصلاح CSS لأنك تقوم فقط بإخفاء شيء لا تفعله كما هو مُصمم (حتى لو كان تصميمًا غريبًا بعض الشيء).

هناك حل آخر غير الحل الذي يشير إليه مانوكوربورات وهو العمل مع الأحداث. لقد فعلت ذلك من هذا القبيل وهو بسيط جدًا ونظيف. ما عليك سوى إطلاق حدث في صفحتك النمطية أو المنبثقة والاستماع إليه في صفحة "الوالدين". يمكن العثور على المزيد عن الأحداث هنا: https://ionicframework.com/docs/api/util/Events/

timvandijck هل يمكنك تقديم مثال؟

@ kabus202 هذا مثال مع popover:

الصفحة التي يتم فيها تشغيل النافذة المنبثقة:

@Component({
    selector: 'page-my-page',
    templateUrl: 'my-page.html'
})
export class MyPage {
    popover = null;

    constructor(public navCtrl:NavController, public popoverCtrl: PopoverController, public events: Events) {
        this.events.subscribe('nav:my-other-page', () => {
            this.navCtrl.setRoot(MyOtherPage);

            if (this.popover) {
                this.popover.dismiss();
            }
        })
    }

    toggleActionsMenu(event) {
        this.popover = this.popoverCtrl.create(PopoverContentPage);
        this.popover.present({
            ev: event
        });
    }
}

الصفحة التي تحتوي على محتوى النافذة المنبثقة:

@Component({
    selector: 'page-popover-content',
    templateUrl: 'popover-content.html'
})
export class PopoverContentPage {

    constructor(public events: Events) {
    }

    registerAppliance() {
        this.events.publish('nav:my-other-page');
    }
}

نعم ، لا تزال هذه مشكلة. أيضًا ، عند محاولة التمرير سريعًا للعودة ، يمكن أن يعمل أحيانًا ويظهر العرض تحت الوضع. ههههههههههه

لا تزال موجودة في الزاوي الأيونية 3.3.0. اي طريقة لاصلاحه؟

manucorporat هل يمكنك إعادة فتح هذه المشكلة من فضلك؟ فتح مشروط في الصفحة المفتوحة عن طريق navController.push () يسبب نفس الموقف كما هو موضح في أول مشاركة.

نعم ، يرجى إعادة الفتح

vosecek المشكلة موجودة ، ولكن يمكنك استخدام إصلاح css الذي نشرته أعلاه. يعمل مع 3.3.

مرحبًا يا رفاق ، تحقق من NavController api ، وتحديدًا القسم بعنوان التنقل من مكون تراكب (تم لصقه أدناه)

لاحظ استخدام this.appCtrl.getRootNav() . لقد نجح هذا الأمر جيدًا بالنسبة لي ، لذلك أشعر بالفضول إذا كان استخدام App يصلح هذه المشكلة للآخرين. على أي حال ، فقط اعتقدت أنه يجب عليك معرفة هذا.

التنقل من مكون التراكب

import { Component } from '@angular/core';
import { App, ViewController } from 'ionic-angular';

@Component({
    template: `
    <ion-content>
      <h1>My PopoverPage</h1>
      <button ion-button (click)="pushPage()">Call pushPage</button>
     </ion-content>
    `
  })
  class PopoverPage {
    constructor(
      public viewCtrl: ViewController
      public appCtrl: App
    ) {}

    pushPage() {
      this.viewCtrl.dismiss();
      this.appCtrl.getRootNav().push(SecondPage);
    }
  }

أعتقد أن السؤال هو لماذا تضيف الكثير عندما يمكنك فقط التنقل ، وكل شيء يعمل بشكل جيد باستثناء القليل من CSS الذي لا يبدو أن أحدًا مهتمًا بإصلاحه؟

إنه يذكرني نوعًا ما باستجابة Apple لقضايا الهوائي "فقط امسكها بشكل مختلف".

لماذا تم إغلاق هذه القضية إذا كانت لا تزال موجودة؟

edwinchoate يعمل هذا ولكن ليس عندما لا تزال بحاجة إلى تنشيط العنصر المنبثق عند الرجوع من الصفحة. لا أعتقد أنه من الممكن التنقل بعيدًا والعودة إلى نافذة منبثقة مثل الصفحة العادية ذات التصميم الحالي ، يتم وضع العنصر المنبثق على طبقة أعلى من جميع الصفحات العادية ، لذا يلزم الرفض. ما لم يغيروا سلوك popover تمامًا.

نظرًا لأن هذا الخطأ لم يتم إصلاحه ، فقد أضفت رمز SCSS هذا كحل بديل وعمل معي. اتمنى ان تكون مفيدة لك:

.toolbar-ios {
  height: 44px + $cordova-ios-statusbar-padding;
  padding-top: $cordova-ios-statusbar-padding;
}

.toolbar-title-ios {
  padding-top: $cordova-ios-statusbar-padding;
}

إلى كل الناس ما زالوا يتعثرون في هذا. manucorporat قدم بالفعل الفكرة الصحيحة. الكود به خطأ وهو غير مكتمل إلى حد ما. لقد اختبرت هذا مع Ionic 3.6.0 .

في صفحة المحتوى التي تقدمها كمشروط ، قم ببساطة بتضمين فئة صفحة غلاف أخرى مع عنصر تنقل مثل هذا:

@Component({
    template: '<ion-nav [root]="this.rootPage" [rootParams]="this.rootParams"></ion-nav>'
})
export class MyModalWrapper {
    private rootPage = MyModalContentPage;
    private rootParams;
    constructor(navParams: NavParams, private viewCtrl: ViewController) {
        this.rootParams = navParams;
        this.rootParams["data"]["closeModal"] = this.onCloseModal
    }
    onCloseModal = () => {
        this.viewCtrl.dismiss();
    }
}

ثم قم بتعديل فئة صفحة المحتوى الخاصة بك كما يلي:

@Component({ /* ... */ })
export class MyModalContentPage {
    /* ... */
    private closeModal;
    constructor(navParams: NavParams, /* ... */) {
        this.closeModal = navParams.get("closeModal");
    }
    /* ... */
}

الآن يمكنك استدعاء closeModal مثل الوظيفة العادية في صفك أو قالبك.

كل ما تبقى الآن هو استبدال MyModalContentPage بـ MyModalWrapper أينما تقوم بإنشاء وتقديم النموذج. لذا بدلاً من:

this.modalCtrl.create(MyModalContentPage, { /* ... */ }).present();

افعل هذا:

this.modalCtrl.create(MyModalWrapper, { /* ... */ }).present();

أتمنى أن يساعدك هذا.

codemusings فعلت ذلك بهذه الطريقة:

@Component({
  template: '<ion-nav [root]="root" [rootParams]="params"></ion-nav>'
})
export class MyModalWrapper {
  root = MyModalContentPage;
  params: any;

  constructor(
    public navParams: NavParams,
    viewCtrl: ViewController,
  ) {
    this.params = Object.assign({}, navParams.data, {viewCtrl: viewCtrl});
  }
}

@Component({ /* ... */ })
export class MyModalContentPage {
    /* ... */
    private viewCtrl: ViewController;
    constructor(navParams: NavParams, /* ... */) {
        this.viewCtrl = navParams.get('viewCtrl');
    }
    /* ... */
    someFunc() {
      this.viewCtrl.dismiss();
    }
}

من خلال تمرير الكل ViewController يمكنك استخدام نفس this.viewCtrl.dismiss() الذي تستخدمه عادة ؛ لا توجد تغييرات ضرورية في صفحة المحتوى إلا في المنشئ.

أنا على Ionic 3.3.0 لكني أعتقد أنه سيعمل على الأحدث أيضًا.

لكن الشيء هو أنه يعمل بشكل جيد تمامًا كما هو وليس هناك حاجة لكل هذا الرمز الإضافي ، مجرد إصلاح CSS بسطر واحد لنظام iOS فقط وهذه ليست مشكلة.

@ ghenry22 هذا ليس صحيحًا تمامًا للشاشات الكبيرة ، على سبيل المثال iPad ، حيث تكون الصفحة التي تم دفعها في وضع ملء الشاشة على الرغم من صغر الحجم.

أتمنى nav.push داخل نموذج عمل للتو. لكنني أفضل القيام بذلك بهذه الطريقة الأكثر تعقيدًا من الاعتماد على إصلاحات CSS للقرصنة.

@ ghenry22zmbc يتضمن عرض التنقل مكدس تنقل منفصل ، والذي تقوم بإنشائه عند فتح نموذج. هذا هو الطريق".

عند استدعاء navCtrl.pop ، فقد يؤدي ذلك إلى حدوث مشكلات غير مقصودة في التنقل في الجذر ، نظرًا لأن Ionic لا تفهم متى تكون في حالة مشروط وعندما لا تكون كذلك.

ليس لدي أي مشكلة مع الصفحات التي تم دفعها على iOS أيضًا؟ أعني أنني سأختبرها مرة أخرى الآن بعد أن ذكرت ذلك للتأكد لكنها تظل ضمن حدود النموذج بالنسبة لي.

في الأساس ، إذا قمت بدفع أو فرقعة صفحة من داخل مشروط ، فأنا أتوقع تحميلها والالتزام بها.

إذا ضغطت أو ظهرت على صفحة عادية ، أتوقع أن يتم تحميلها بصفحة ملء الشاشة العادية.

لدي صفحات يمكنني استخدامها في أي من السيناريوهين ، لذا فإن إضافة رمز للتعامل مع سيناريو واحد يمكن أن يتسبب في حدوث مشكلات في الآخر.

إذا كنت تريد أن تفتح الصفحة التي تم دفعها داخل مشروط بملء الشاشة على ipad ، فأعتقد أنه يجب أن يكون لديك وظيفة تغلق النموذج ثم تدفع الصفحة التي يمكن أن تصبح فوضوية بعض الشيء بالتأكيد.

wbhob قد تكون هذه هي النتيجة المرجوة ولكن كل ما عليك فعله هو إلقاء نظرة على هذه التذكرة والمنتديات الأيونية وتجاوز المكدس لرؤية نفس السؤال يتم طرحه مرارًا وتكرارًا.

لذلك من الواضح أنها مشكلة من وجهة نظر قابلية الاستخدام البحتة للناس. سيكون من الرائع لو تمكنت شركة أيونيك من تنفيذ شيء ما تحت الغطاء بحيث "تعمل للتو" ثم تتوقف جميع التعليقات والطلبات حول هذه المشكلة المغلقة :)

قام بعمل العلاقات العامة للمستندات @ ghenry22

تم دمج العلاقات العامة الخاصة بي! تحقق من المستندات المشروطة

@ jgw96 آمل أن يتم حل هذا مع Ionic4. لقد كان رائعًا منذ ionic2 RC0 بدون أي إجراء وهو أمر مروع بعض الشيء بالنظر إلى أنه إصلاح CSS بسيط ثم استخدام التنقل يعمل فقط كما هو متوقع سواء كنت في صفحة نموذجية أو عادية. كما ينبغى.

إنه يعمل كما هو متوقع ، إنها ليست مشكلة. توجد تفاصيل حول القيام بذلك في المستندات الأيونية (كتبت هذا الجزء من المستندات)

wbhob إلا أنه لا يعمل كما هو متوقع. كما يتضح من المواضيع العديدة في المنتدى. المشكلات هنا وفي تجاوز سعة المكدس.

يعمل التنقل تمامًا كما تتوقعه باستثناء أن الصفحة المدفوعة تفقد حالتها عند المساحة المتروكة. هذا إصلاح بسيط لـ css ولا يتطلب أي شيء أكثر تعقيدًا.

تتضمن الأعمال الموصى بها وغيرها من الأعمال إغلاق التراكب قبل فتح الصفحة الجديدة. هذه ليست طريقة مجدية لتطبيقي لأنني أريد أن يكون المستخدم قادرًا على عرض بعض المعلومات إما من نموذج أو من صفحات عادية أخرى وإذا كان العرض من نموذج أريده أن يكون قادرًا على العودة إلى النموذج.

على أي حال ، قمت بنشر إصلاح css فقط لهذا في إحدى المشكلات الأخرى التي تم تسجيلها لهذا اليوم الآخر والتي تم حلها تمامًا بالنسبة لي ببساطة عن طريق تطبيق أنماط الصفحة الأيونية القياسية كما لو كانت في إعداد غير مشروط.

الطريقة الصحيحة للقيام بذلك هي إنشاء مثيل تنقل مستقل داخل النموذج. هدفك هو الانتقال إلى صفحات إضافية ، ولكن عندما تستدعي navCtrl. ادفعه ، كما تتوقع ، فقم بتشغيله مقابل مكدس تنقل الجذر لأنه لا يعرف أي شيء أفضل. عند القيام بذلك بشكل صحيح وإنشاء مكدس تنقل حصريًا للشروط ، فإنه يعمل بشكل صحيح.

نعم هذه طريقة للقيام بذلك لسيناريو محدد. بافتراض أنك تريد في حالة الاستخدام الخاصة بك استبعاد التراكب المفتوح (مشروط / انبثاق وما إلى ذلك) ثم افتح الصفحة. في هذا السيناريو ، نعم ما قلته وما هو معروض في مستندات المكون الأيوني لوحدة التحكم في التنقل يعمل بشكل جيد.

لا أريد استبعاد النموذج المفتوح ، أريد أن أكون قادرًا على الانتقال إلى صفحة تعرض بعض المعلومات الإضافية ، وعند الانتهاء ، انقر فوق "رجوع" للعودة إلى النموذج الذي تم فتح الصفحة منه. لا تغطي المستندات التي تشير إليها هذا السيناريو.

بالنسبة للسيناريو الثاني ، يعمل كل شيء بشكل مثالي من حيث الوظائف. كل شيء يعمل بدون مشكلة على الإطلاق على Android. المشكلة الوحيدة هي أنه في IOS ، لا يتم تطبيق فئة css الصحيحة فقط على الصفحة المدفوعة عندما يتم دفعها من التراكب. يوجد إصلاح CSS بسيط لهذا الغرض.

ما عليك سوى التمسك بالمتابعة في app.scss الخاص بك ، وستكون على ما يرام تمامًا حيث سيتم الآن تطبيق الفئة الصحيحة على الصفحات سواء تم دفعها من صفحة مشروطة أو صفحة عادية أخرى.

الآن كلا السيناريوهين يعملان بشكل جيد.
1) عندما تريد استبعاد التراكب وتحميل صفحة جديدة ، استخدم الطريقة الموجودة في مستندات navcontroller.
2) عندما لا ترغب في استبعاد التراكب وتحميل صفحة جديدة يمكن أن تنتقل للخلف ولا يزال يتوفر تراكب المصدر ، فقط قم بتضمين css أدناه وسيحل مشكلة التخطيط.

// handle top padding disappearing in modals
<strong i="12">@media</strong> only screen and (max-width: 767px){
    .ios > .ion-page > ion-header > .toolbar.statusbar-padding:first-child {
        padding-top: calc(20px + 4px);
        padding-top: calc(constant(safe-area-inset-top) + 4px);
        padding-top: calc(env(safe-area-inset-top) + 4px);
        min-height: calc(44px + 20px);
        min-height: calc(44px + constant(safe-area-inset-top));
        min-height: calc(44px + env(safe-area-inset-top));
        }
}

@ ghenry22 أعتقد أنك مخطئ. أنا أستخدم الحل الموصى به في تطبيق Ionic ، ولا يتم رفض النموذج. يقوم بدفع صفحة جديدة إلى المكدس الشرطي ، وعندما ينقر المستخدم على "رجوع" ، يعود إلى النموذج.

أعتقد أن تطبيقك ربما يحتوي على نوع من الأخطاء إذا كنت لا ترى هذا السلوك مع الحل الموصى به. لو كنت مكانك ، كنت سأفتح سؤال StackOverflow لمحاولة تصحيحه. شخص ما هناك يمكن أن يساعدك في اكتشاف ذلك.

هذه المشكلة ليست في المكان المناسب ، لأن هذه الوظيفة موجودة بالفعل في Ionic وتم توثيقها بشكل كافٍ للاستخدام العام.

zmbc https://ionicframework.com/docs/api/navigation/NavController/
المستندات هنا للتنقل من تراكب عرض رفض () يتم استدعاؤه قبل الانتقال إلى الصفحة التالية. هذا ما كنت أشير إليه.

عند البحث في سجلات العلاقات العامة القديمة ، يبدو أن التحديثات التي أضافهاwbhob لا تنعكس على صفحات توثيق المكون الأيوني. سأحاول الحل من الالتزامات القديمة ، ولكن إذا كان يعمل كما تقول ، فسيكون من الجيد الحصول على هذه المعلومات المضمنة في مستندات أو أمثلة API الخاصة بوحدة التحكم في التنقل حتى يمكن العثور عليها بسهولة.

ومع ذلك ، إذا تم تطبيق فئات CSS الصحيحة (كما هو الحال في Android) ، فلا داعي لأي حل أو رمز إضافي من المستخدم ، فمن المؤكد أن هذه ستكون نتيجة مرغوبة؟

@ ghenry22 لست متأكدًا من مكان وجود الوثائق في المشروع بعد الآن ، لكنني أعتقد أنك محق في أن تغييرات wbhob لم تعد موجودة (على الرغم من أنها ستكون في ModalController ، وليس NavController ).

كما أوضحت من قبل ، ليس صحيحًا أن إصلاح CSS جيد تمامًا مثل الحل الموصى به. إنه مكافئ فقط على الشاشات الصغيرة حيث تكون الوسائط في وضع ملء الشاشة ، ومن يدري ما إذا كانت ستعمل في الإصدار التالي من Ionic؟ يُنشئ الحل الموصى به حزمة تنقل حقيقية ، وهو ما تريده في هذه الحالة ، ويعمل على جميع أحجام الشاشات ، ويستخدم واجهة برمجة تطبيقات عامة موثقة. كما أنه ليس فرقًا كبيرًا في تعقيد الكود: أفضل أن يكون لدي عدد قليل من الأسطر المعيارية أكثر من بعض SCSS الغامض الذي لن أتمكن من فهمه في المستقبل.

أوصيك باستخدام هذا الأسلوب للقيام بما تريده بالضبط: ادفع الصفحة على شكل ولديك القدرة على العودة إلى النموذج. إذا كنت لا تريد أن تفعل ذلك ، فالأمر متروك لك. لكن من الواضح أن هذه ليست مشكلة مع Ionic.

zmbc ، ستكون الوثائق على navController لأن هذا هو ما يتم استخدامه للتنقل. يقوم ModalControl فقط بإنشاء وتقديم النموذج.

لا أوافق على أن CSS غامض ، فهو معيار CSS الأيوني الذي يتم تطبيقه على الصفحة عند الضغط عليه بشكل طبيعي ، وأنا أوافق على أنه يمكن أن يتوقف عن العمل أو يتسبب في حدوث مشكلات إذا كان هناك تغيير كبير في أيوني (مثل إصدار V4 ) وهذا هو السبب في أنه يجب إصلاح هذا باعتباره خطأ يؤثر على نظام iOS الأساسي لـ Ionic حتى لا يحتاج الأشخاص إلى تطبيق أي إصلاح.

هذه المشكلة غير موجودة على Android ، والتي تعمل بشكل مثالي دون أي تغييرات. لذلك يبدو أن هذا خطأ خاص بالنظام الأساسي مع تطبيق أيوني لفئات CSS.

أعترف أنني لم أختبرها على جهاز شاشة أكبر حتى الآن ، وقد يكون هناك شيء آخر مطلوب هناك ، سأنظر في ذلك.

أستطيع أن أرى أن هناك حلًا فقد من المستندات وهو موجود الآن فقط كتعليق في رأس الملف المصدر. إذا كان من الممكن استعادة هذا الحل إلى مستندات وحدة تحكم التنقل الرسمية ، في القسم الخاص بالتنقل من Modal ، فهناك على الأقل حل موثق ويمكن الوصول إلى الوثائق بسهولة للأشخاص الذين يقرؤون مستندات Ionic.

من الواضح أننا لن نتفق على النهج الصحيح أو الخاطئ ، لذا ضع ذلك جانبًا ، طالما أن هناك طريقة موصى بها رسميًا للقيام بذلك (مهما كانت) مضافة بشكل صحيح إلى المستندات ، فهذا جيد بما يكفي بالنسبة لي.

شكرا على المشكلة! تم قفل هذه المشكلة لمنع التعليقات غير ذات الصلة بالمشكلة الأصلية. إذا استمرت المشكلة في أحدث إصدار من Ionic ، فيرجى إنشاء مشكلة جديدة والتأكد من ملء النموذج بالكامل.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات