Push Presentation موبائل ڈویلپمنٹ میں: یہ کیا ہے، اسکرین اسٹیک

مصنف: IT Sectr اشاعت: 2026-06-09 مطالعے کا وقت: 5 منٹ

Push Presentation ایک موبائل ایپلیکیشنز میں نیویگیشن پیٹرن ہے جس میں ہر نئی اسکرین پچھلی اسکرین کے اوپر نیویگیشن اسٹیک میں شامل ہوتی ہے۔ صارف ترتیب وار مواد میں آگے بڑھ سکتا ہے اور سسٹم بٹن یا سوائپ کے ذریعے واپس آ سکتا ہے۔ Apple Developer, 2025 کے مطابق، UINavigationController 85% iOS ایپس میں بنیادی نیویگیشن پیٹرن کے طور پر استعمال ہوتا ہے۔ Android میں، اسی طرح کی فعالیت FragmentManager اور Navigation Component کے NavController کے ذریعے لاگو کی جاتی ہے۔

اہم نکات

  • Push Presentation — پچھلی اسکرین پر خودکار واپسی کے بٹن کے ساتھ نیویگیشن اسٹیک میں اسکرین شامل کرنا۔
  • UINavigationController iOS میں pushViewController اور popViewController طریقوں کے ذریعے UIViewController اسٹیک کا انتظام کرتا ہے۔
  • Android Navigation Component XML یا Compose فارمیٹ میں NavHost اور نیویگیشن گراف کے ساتھ NavController استعمال کرتا ہے۔
  • اسٹیک نیویگیشن نیویگیشن ہسٹری کو محفوظ رکھتا ہے، صارف کو کسی بھی پچھلی اسکرین پر واپس جانے کی اجازت دیتا ہے۔
  • ڈیپ لنکنگ Push نیویگیشن میں Android میں Intent اور NavDeepLink ہینڈلنگ اور iOS میں URL اسکیموں کے ذریعے سپورٹ کیا جاتا ہے۔

Push Presentation کیا ہے؟

Push Presentation ایک نیویگیشن میکانزم ہے جس میں ہر نئی اسکرین اسٹیک کے اوپر رکھی جاتی ہے، جبکہ پچھلی اسکرین اس کے نیچے میموری میں رہتی ہے۔ صارف ترتیب وار تفصیلی اسکرینوں کو کھول کر مواد میں گہرائی میں جاتا ہے، اور واپسی کا بٹن اسے پچھلے مرحلے پر واپس لے جاتا ہے۔

Push نیویگیشن کا فن تعمیر LIFO (Last In, First Out) ڈیٹا ڈھانچے پر مبنی ہے۔ نئی اسکرین ہمیشہ اسٹیک کے آخر میں شامل کی جاتی ہے، اور حذف صرف اوپر سے ہوتا ہے۔ یہ پیش قیاسی رویے کو یقینی بناتا ہے: صارف ہمیشہ جانتا ہے کہ واپسی کا بٹن اسے بالکل ایک قدم پیچھے لے جائے گا۔ نیویگیشن اسٹیک ایپلیکیشن کی پیچیدگی کے لحاظ سے 2 سے 10+ اسکرینوں پر مشتمل ہو سکتا ہے۔

Push Presentation درجہ بندی والے مواد والی ایپلیکیشنز میں بنیادی پیٹرن ہے: نیوز فیڈ، پروڈکٹ کیٹلاگ، کثیر سطحی مینیو اور دستاویزات۔ Material Design کے مطابق، اسٹیک نیویگیشن ان منظرناموں کے لیے موزوں ہے جہاں صارف عام سے خاص تک مواد کو دریافت کرتا ہے اور ہر بعد والی اسکرین موضوع کی سمجھ کو گہرا کرتی ہے۔

نیویگیشن اسٹیک اسکرینوں کا ایک ترتیب وار سیٹ ہے جہاں ہر عنصر اپنے ViewController یا Fragment کی حالت محفوظ کرتا ہے۔ Push آپریشن کے دوران، ایک نئی اسکرین اسٹیک میں شامل کی جاتی ہے، اس کی ظاہری شکل کو متحرک کیا جاتا ہے (iOS میں دائیں سے سلائیڈ، Android میں نیچے سے سلائیڈ یا Fade)، اور یہ فعال ہو جاتی ہے۔

Pop آپریشن (واپسی بٹن دبانے) کے دوران، اوپر والی اسکرین اسٹیک سے ہٹا دی جاتی ہے، تباہ ہو جاتی ہے یا میموری میں منتقل ہو جاتی ہے، اور پچھلی اسکرین فعال ہو جاتی ہے۔ iOS ڈیفالٹ طور پر پاپ شدہ ViewController کو تباہ کر دیتا ہے، میموری آزاد کرتا ہے۔ Android Fragment کو دوبارہ تخلیق کیے بغیر بحالی کی صلاحیت کے ساتھ بیک اسٹیک میں محفوظ کر سکتا ہے۔

اسٹیک کی گہرائی کارکردگی کو متاثر کرتی ہے: اسٹیک میں ہر اسکرین میموری استعمال کرتی ہے۔ سفارش کی جاتی ہے کہ اسٹیک میں 10 سے زیادہ اسکرینیں نہ رکھیں۔ گہری نیویگیشن کے لیے، PopToRoot استعمال کریں یا نئی روٹ اسکرین کے ساتھ اسٹیک کو دوبارہ شروع کریں۔ Android میں Navigation Component SavedStateHandle کے ذریعے خود بخود اسٹیک کی حالت کا انتظام کرتا ہے۔

iOS میں Push نیویگیشن: UINavigationController

UINavigationController ایک iOS کنٹینر کنٹرولر ہے جو UIViewController کے اسٹیک کا انتظام کرتا ہے۔ یہ خود بخود موجودہ اسکرین کے عنوان اور واپسی کے بٹن کے ساتھ ایک نیویگیشن بار دکھاتا ہے۔ ڈیفالٹ push اینیمیشن دائیں سے بائیں سلائیڈ ہے، جو صارف کے لیے مواد میں ڈوبنے کا احساس پیدا کرتی ہے۔

اسٹیک کا انتظام

اسکرین شامل کرنا pushViewController(_:animated:) کے ذریعے کیا جاتا ہے۔ ہٹانا popViewController(animated:) کے ذریعے کیا جاتا ہے۔ روٹ اسکرین پر واپس جانے کے لیے popToRootViewController(animated:) استعمال کریں۔ UINavigationController viewControllers پراپرٹی (اسٹیک میں موجود تمام کنٹرولرز کی ایک صف) کے ذریعے پروگراماتی اسٹیک مینجمنٹ کو بھی سپورٹ کرتا ہے۔

نیویگیشن بار اور Large Titles

نیویگیشن بار میں اسکرین کا عنوان، واپسی کا بٹن اور اختیاری ایکشن بٹن ہوتے ہیں۔ iOS 11 سے شروع ہو کر، Large Titles (prefersLargeTitles) اسکرول کرنے پر متحرک طور پر سکڑنے والے بڑے فونٹ میں عنوان دکھانے کی اجازت دیتے ہیں۔ یہ نیویگیشن کے درجہ بندی کو بہتر بناتا ہے اور صارف کو موجودہ حصے کے بارے میں آگاہ کرتا ہے۔

swift
let detailVC = DetailViewController()
detailVC.title = "Item Details"
navigationController?.pushViewController(detailVC, animated: true)

// پچھلی اسکرین پر واپس جائیں
navigationController?.popViewController(animated: true)

// روٹ پر واپس جائیں
navigationController?.popToRootViewController(animated: true)

Android میں Push نیویگیشن: Navigation Component

Navigation Component اعلانیہ نیویگیشن کے لیے ایک Android Jetpack لائبریری ہے۔ یہ NavController فراہم کرتی ہے، جو نیویگیشن گراف (nav_graph) کے ذریعے فریگمنٹس یا Compose اسکرینوں کا انتظام کرتا ہے۔ Android میں Push iOS کی طرح ہے: ہر نیا Fragment بیک اسٹیک میں شامل کیا جاتا ہے اور واپسی کا بٹن پچھلے پر واپس جاتا ہے۔

NavHost اور NavGraph

NavHost ایک کنٹینر ہے جو NavGraph سے موجودہ منزل دکھاتا ہے۔ NavGraph ایک XML فائل ہے جو تمام ایپلیکیشن اسکرینوں اور ان کے درمیان کنیکشن کی وضاحت کرتی ہے۔ ٹرانزیشنز منزل اور اختیاری آرگیومنٹس کی وضاحت کرنے والے actions کے ذریعے متعین کی جاتی ہیں۔ Navigation Component خود بخود سسٹم بیک، اینیمیشنز اور حالت کے تحفظ کو ہینڈل کرتا ہے۔

آرگیومنٹس اور Safe Args

اسکرینوں کے درمیان ڈیٹا منتقل کرنے کے لیے، Navigation Component Safe Args — ٹائپ سیف آرگیومنٹ کلاسز کا کوڈ جنریشن سپورٹ کرتا ہے۔ دستی طور پر Bundle میں ڈیٹا ڈالنے کے بجائے، ڈویلپر NavGraph میں آرگیومنٹس کا اعلان کرتا ہے اور انہیں جنریٹڈ Directions اور Args کلاسز کے ذریعے حاصل کرتا ہے۔ Safe Args ٹائپ مماثلت کی غلطیوں کو ختم کرتا ہے اور ری فیکٹرنگ کو آسان بناتا ہے۔

kotlin
// XML میں NavGraph کی تعریف
<!-- res/navigation/nav_graph.xml -->
@navigation {
    NavHost(startDestination = "list") {
        composable("list") { ListScreen() }
        composable(
            "detail/{itemId}",
            arguments = listOf(navArgument("itemId") { type = NavType.IntType })
        ) { DetailScreen(it.arguments()?.getInt("itemId") ?: 0) }
    }
}

// پروگراماتی طور پر نیویگیٹ کریں
navController.navigate("detail/42")

Push اسٹیک کے ساتھ BottomNavigation

Bottom Navigation اور Push نیویگیشن کا امتزاج موبائل ایپلیکیشنز میں ایک عام پیٹرن ہے۔ ہر Bottom Navigation ٹیب کا اپنا اسکرین اسٹیک ہوتا ہے۔ Navigation Component اسے فی ٹیب NavHost یا ہر ٹیب کے لیے علیحدہ گراف والے ایک واحد NavHost کے ذریعے سپورٹ کرتا ہے۔ ٹیب تبدیل کرنے سے push اسٹیک کی حالت دوبارہ سیٹ نہیں ہوتی۔

Push Presentation بمقابلہ Modal Presentation

Push Presentation اور Modal Presentation نیویگیشن کے مختلف کام حل کرتے ہیں۔ Push ترتیب وار مواد دیکھنے کے لیے ڈیزائن کیا گیا ہے، جہاں ہر نئی اسکرین سیاق و سباق کو گہرا کرتی ہے۔ Modal ان فوکسڈ کاموں کے لیے ہے جنہیں مکمل کرنے کی ضرورت ہے۔ عملی طور پر، مخصوص منظرنامے کے لیے صحیح پیٹرن کا انتخاب کرنا ضروری ہے۔

بنیادی انتخاب کے معیار: اگر صارف کو سیاق و سباق کھوئے بغیر آزادانہ طور پر واپس آنے کے قابل ہونا چاہیے — Push منتخب کریں۔ اگر کام عارضی ہے اور مرکزی مواد (فارم، اجازت) کو بلاک کرتا ہے — Modal استعمال کریں۔ ایک ہی اسکرین پر پیٹرن کو ملانا (Modal کے اندر Push) قابل قبول ہے لیکن واضح بصری درجہ بندی کی ضرورت ہے۔

ایک عام غلطی اسکرینوں کی ترتیب کے لیے Modal کا استعمال کرنا ہے جو منطقی طور پر مرکزی بہاؤ کا حصہ ہیں۔ مثال کے طور پر، آرڈر بنانے کا وزرڈ (مرحلہ 1 → مرحلہ 2 → مرحلہ 3) موڈل ونڈوز کی زنجیر کے بجائے موڈل کنٹینر کے اندر Push کے ذریعے لاگو کرنا بہتر ہے۔ یہ نیویگیشن کے درجہ بندی اور واپسی کی پیش قیاسی کو محفوظ رکھتا ہے۔

Swift اور Kotlin میں نفاذ کی مثالیں

آئیے دونوں پلیٹ فارمز پر Push نیویگیشن کے مکمل نفاذ کا جائزہ لیتے ہیں۔ Swift کی مثال پروگراماتی اسٹیک مینجمنٹ اور ڈیپ لنک ہینڈلنگ کے ساتھ UINavigationController کو ظاہر کرتی ہے۔ Kotlin کی مثال NavHost، آرگیومنٹس اور اینیمیشنز کے ساتھ Navigation Component کو دکھاتی ہے۔

swift
class ListViewController: UIViewController {
    func showDetail(_ itemId: Int) {
        let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let detailVC = storyboard.instantiateViewController(
            withIdentifier: "DetailViewController"
        ) as! DetailViewController
        detailVC.itemId = itemId
        navigationController?.pushViewController(detailVC, animated: true)
    }
}

class DetailViewController: UIViewController {
    var itemId: Int = 0

    override func viewDidLoad() {
        super.viewDidLoad()
        title = "Item #\(itemId)"
    }
}
kotlin
@Composable
fun PushNavigationApp() {
    val navController = rememberNavController()

    NavHost(navController = navController, startDestination = "list") {
        composable("list") {
            ListScreen(
                onItemClick = { id -> navController.navigate("detail/$id") }
            )
        }
        composable(
            "detail/{itemId}",
            arguments = listOf(navArgument("itemId") { type = NavType.IntType })
        ) { backStackEntry ->
            val itemId = backStackEntry.arguments()?.getInt("itemId") ?: 0
            DetailScreen(itemId = itemId, onBack = { navController.popBackStack() })
        }
    }
}

مثالیں بنیادی Push نیویگیشن دکھاتی ہیں: فہرست → تفصیلات۔ iOS دستی ڈیٹا منتقلی کے ساتھ اسٹوری بورڈز اور UINavigationController استعمال کرتا ہے۔ Android ٹائپ سیف آرگیومنٹس اور خودکار بیک اسٹیک مینجمنٹ کے ساتھ NavHost استعمال کرتا ہے۔ دونوں طریقے ڈیپ لنکس، کسٹم اینیمیشنز اور گردش پر حالت کے تحفظ کو سپورٹ کرتے ہیں۔

اکثر پوچھے گئے سوالات

Push Presentation iOS میں Present سے کیسے مختلف ہے؟

Push واپسی کے بٹن کے ساتھ UINavigationController اسٹیک میں اسکرین شامل کرتا ہے۔ Present واپسی کے بٹن کے بغیر ایک موڈل ونڈو کھولتا ہے — صارف کو اسے واضح طور پر بند کرنا ہوتا ہے۔ Push ترتیب وار مواد کے لیے موزوں ہے، Present فوکسڈ کاموں کے لیے۔ SwiftUI میں، Push NavigationLink سے اور Present .sheet سے مطابقت رکھتا ہے۔

Android میں گہرے نیویگیشن اسٹیک کا انتظام کیسے کریں؟

Navigation Component ایک مخصوص نقطہ تک popBackStack طریقے اور اسٹیک صاف کرنے کے لیے popUpTo فراہم کرتا ہے۔ اسٹیک اوور فلو کو روکنے کے لیے، navigate سے پہلے popUpTo(startDestination) { inclusive = true } استعمال کریں۔ یہ یقینی بناتا ہے کہ اسٹیک میں ایک ساتھ 5–7 سے زیادہ اسکرینیں نہ ہوں۔

کیا ایک نیویگیشن میں Push اور Modal کو ملایا جا سکتا ہے؟

ہاں، Push اور Modal کو ملانا ایک معیاری پیٹرن ہے۔ مثال کے طور پر: فہرست → تفصیلات پر Push → اجازت کے لیے Modal۔ سفارش کی جاتی ہے کہ Modal کے اندر Push کو نیسٹ نہ کریں — ایک موڈل ونڈو میں اسٹیک نیویگیشن نہیں ہونی چاہیے۔ اگر موڈل ونڈو کے اندر اسکرینوں کی ترتیب کی ضرورت ہو تو موڈل کنٹینر کے اندر Push استعمال کریں۔

Push Presentation ڈیپ لنکس کے ساتھ کیسے کام کرتا ہے؟

Push نیویگیشن میں ڈیپ لنکس ایپ کو ایک مخصوص اسکرین پر کھولتے ہیں۔ iOS UINavigationController کے ساتھ URL اسکیمیں اور Universal Links استعمال کرتا ہے۔ Android NavDeepLink کے ساتھ Intent Filters استعمال کرتا ہے۔ دونوں صورتوں میں، سسٹم لنک کو پارس کرتا ہے اور ہدف اسکرین تک ایک نیویگیشن اسٹیک بناتا ہے، واپس آنے کی صلاحیت کو محفوظ رکھتا ہے۔

Push ٹرانزیشنز کو کیسے متحرک کریں؟

iOS معیاری سلائیڈ اینیمیشن استعمال کرتا ہے، جو UINavigationControllerDelegate کے ذریعے حسب ضرورت ہے۔ Android Navigation Component XML وسائل (slide_in_right, slide_out_left) کے ذریعے کسٹم اینیمیشنز کو سپورٹ کرتا ہے۔ Compose کے لیے، animateItemPlacement موڈیفائر کے ساتھ AnimatedNavHost استعمال کریں۔

خلاصہ

  • Push Presentation ایک اسٹیک نیویگیشن پیٹرن ہے جو ہر نئی اسکرین کو واپسی کے بٹن کے ساتھ پچھلے کے اوپر شامل کرتا ہے۔
  • UINavigationController نیویگیشن بار کے ساتھ pushViewController اور popViewController کے ذریعے iOS میں اسٹیک کا انتظام کرتا ہے۔
  • Android Navigation Component ٹائپ سیف نیویگیشن کے لیے NavHost، NavGraph اور Safe Args فراہم کرتا ہے۔
  • Push مواد کو بلاک نہ کرنے اور اسٹیک میں آزاد واپسی کی اجازت دینے میں Modal سے مختلف ہے۔
  • اسٹیک کی گہرائی بہترین ایپلیکیشن کارکردگی کے لیے 10 اسکرینوں سے تجاوز نہیں کرنی چاہیے۔
  • Push نیویگیشن میں ڈیپ لنکس ہسٹری کے تحفظ کے ساتھ URL اسکیموں اور NavDeepLink کے ذریعے سپورٹ کیے جاتے ہیں۔
  • سفارش کی جاتی ہے درجہ بندی والے مواد کے لیے Push اور فوکسڈ کاموں کے لیے Modal استعمال کریں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں